我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java服务器处理图片上传的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java服务器处理图片上传的方法

本文实例为大家分享了Java服务器处理图片上传的具体代码,供大家参考,具体内容如下

一、简述

第一:浏览器上传图片实现;

第二:微信小程序上传图片实现;

二、图片上传功能实现

1.处理H5的单文件上传实现:

package cn.ncist.tms.attachment.controller;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
 

@RequestMapping(value = "/fileUpload")
@Controller
public class AttachmentUpload {
    
    
    @RequestMapping(value = "/doFileUpload",method = RequestMethod.POST)
    @ResponseBody
    public Map<String,Object> doFileUpload(HttpServletRequest request,
            HttpServletResponse reponse,
            @RequestParam("file") MultipartFile class="lazy" data-srcFile) throws IOException{
        
        
        
        //1.变量声明
        Map<String,Object> result = null;// 返回结果变量
        FileOutputStream fos = null;     //写入文件的变量
        File destFile = null;    //写入的目的地文件(distination)
        
        try {
            result = new HashMap<String,Object>();
            
            //2.参数验证
            if(class="lazy" data-srcFile == null){
                throw new RuntimeException("上传文件不存在");
            }
            if(class="lazy" data-srcFile.getBytes().length == 0){
                throw new RuntimeException("上传文件内容为空");
            }
            
            //3.操作文件对象,写入本地目录的文件中
            
            //3.1 截取文件后缀
            String ext = class="lazy" data-srcFile.getOriginalFilename().substring(class="lazy" data-srcFile.getContentType().lastIndexOf( ".")+1);
            //3.2 实例化目标文件,根据当前的操作系统,指定目录文件,
            destFile = new File("D:"+File.separator+"descFolder"+File.separator+"descFile."+ext);
            //3.3 实例化流
            fos = new FileOutputStream(destFile);
            //3.4 获取写入的字节数组,并写入文件    
            byte[] class="lazy" data-srcBytes = class="lazy" data-srcFile.getBytes();
            fos.write(class="lazy" data-srcBytes);
            fos.flush();
            //4.对输入、输出流进行统一管理
            //已在文件finally代码块处理
            
            result.put( "code", "S");
            result.put( "msg", "服务调用成功");
            result.put( "path", destFile.getAbsolutePath());
            return result;
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
            result = new HashMap<String,Object>();
            result.put( "code", "F");
            result.put( "msg", "服务调用失败");
            result.put( "path", null);
            return result;
        } finally{
            //关闭系统资源,避免占用资源.
            if(fos != null){
                fos.close();
            }
        }
    }
}

2.微信或手机APP上传图片文件的代码实现:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
import javax.annotation.Resource;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.jboss.netty.handler.codec.http.HttpRequest;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
 
import com.hlinkcloud.ubp.core.constant.RedisKeyConstant;
import com.hlinkcloud.ubp.core.service.RedisService;
import com.hlinkcloud.ubp.core.util.BaseStringUtil;
import com.hlinkcloud.ubp.facade.bean.common.FastDFSFile;
import com.hlinkcloud.ubp.facade.bean.common.FileManagerConfig;
import com.hlinkcloud.ubp.facade.service.common.FileInfoService;
import com.hlinkcloud.ubp.facade.service.permission.UserService;
import com.hlinkcloud.ubp.facade.util.DictionaryCommUtil;
 
import fr.opensagres.xdocreport.core.io.internal.ByteArrayOutputStream;
 

@Controller
@RequestMapping("/wx_upload")
public class WxUploadImgBusiness {
 
    @Resource
    private UserService userService;
 
    @Resource
    private RedisService redisService;
 
    @Resource(name = "commonUtil")
    private DictionaryCommUtil commUtil;
 
    @Resource
    private FileInfoService fileService; 
    
    @RequestMapping("/getUploadFilePath")
    @ResponseBody
    public Map<String, Object> doWxUploadFile(HttpServletRequest request, HttpServletResponse response) {
 
        HashMap<String, Object> map = new HashMap<String, Object>();
        
        try {
            
            
 
            // 1.将请求转化为操作流的请求对象.
            MultipartHttpServletRequest req = (MultipartHttpServletRequest) request;
            MultipartFile picture = req.getFile("file");
            
            if(picture != null && picture.getBytes().length != 0){
                // 2.将图片上传到服务器
                byte[] bytes = picture.getBytes();
                String ext = picture.getOriginalFilename().substring(
                        picture.getOriginalFilename().lastIndexOf(".") + 1
                        );
                // (备注:下列代码为内部业务代码,可根据公司自身的需求,进行更改)
                
                
                map.put("code", "S");
                map.put( "msg", "服务调用成功");
                map.put("statusCode", 200);
                map.put("data", filePath);
            }else{
                throw new RuntimeException("上传图片异常或空图片!");
            }
        } catch (IOException e) {
            e.printStackTrace();
            map.put("code", "F");
            map.put("msg", "服务调用失败");
            map.put("statusCode", 500);
            map.put("data", null);
        }
        return map;
    }
    
    
    @RequestMapping(value = "/doUploadFileOfCI" , method = RequestMethod.POST )
    public @ResponseBody Map<String,Object> doUploadFile(
            HttpServletRequest request,//请求对象
            HttpServletResponse response) throws IOException{//响应对象
        
        System.out.println("doTestMultipartFile:");
        
        MultipartHttpServletRequest req = (MultipartHttpServletRequest) request;
        //此时说明请求对象是MultipartHttpServletRequest对象
        MultipartFile picture = req.getFile("UploadedImage");
        
        //遍历请求得到所有的数据.
        if(req != null){
            
            //获取所有属性名
            Enumeration enume= req.getAttributeNames();
            while(enume.hasMoreElements()){
                System.out.println("enume:"+enume.nextElement());
            }
            
            //获取所有文件名
            Iterator<String> fileNames = req.getFileNames();
            while(fileNames.hasNext()){
                System.out.println("fileNames:"+fileNames.next());
            }
            
            //获取操作文件的map
            Map<String,MultipartFile> fileMap =  req.getFileMap();
            if(fileMap != null && fileMap.size() > 0){
                Set<String> set = fileMap.keySet();
                for(String key:set){
                    System.out.println("String:"+key);
                }
            }
            
            //获取请求流
            InputStream is = req.getInputStream();
            System.out.println("InputStream:"+is);
            int length = -1;
            while( (length = is.read()) != -1 ){
                System.err.println("data:"+length);
            }
            
            //获取所有请求参数
            Enumeration enumee = req.getParameterNames();
            while(enumee.hasMoreElements()){
                System.out.println("enumee:"+enumee.nextElement());
            }
        }
        
        System.out.println(picture);
        
        
        return null;
    }
 
}

总结:图片上传均是将图片的字节数据,以HTTP协议(其他编程语言自行定义传输协议) 进行数据的传输,当服务器接收到后,解析HTTP协议的图片数据并封装成Request请求对象,最后通过请求对象便可获取封装好的文件对象。(注:当项目配置SpringMVC的文件上传解析器后,可以在请求方法的参数中传入Multipart类型变量或解析Request对象。)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java服务器处理图片上传的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用Java服务器处理图片上传

这篇文章主要介绍了怎么使用Java服务器处理图片上传的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Java服务器处理图片上传文章都会有所收获,下面我们一起来看看吧。一、简述第一:浏览器上传图片实现;第二
2023-07-02

Java上传图片的方法有哪些

在Java中,有多种方法可以上传图片:1. 使用基本的Java IO类库:可以使用FileInputStream类来读取图片文件,并使用OutputStream类将文件写入服务器或其他存储位置。2. 使用Apache的Commons Fil
2023-08-20

图片上传的云服务器的方法是什么

图片上传的云服务器方法通过云服务提供商,创建云存储服务并配置权限。使用SDK、API或第三方库上传图片,优化上传性能以提高速度。管理上传图片,包括命名约定、元数据管理和生命周期管理。考虑安全性和成本因素,采用加密、恶意软件扫描和访问控制措施。其他方法包括文件系统挂载、流媒体服务和对象存储网关。
图片上传的云服务器的方法是什么
2024-04-10

图片上传的云服务器的方法是什么

图片上传到云服务器的方法有多种,下面列举了几种常见的方法:1. 使用FTP(文件传输协议):通过FTP客户端将图片上传到云服务器。首先需要在云服务器上安装并配置FTP服务器软件,然后通过FTP客户端连接到云服务器,将图片文件上传到指定的目录
2023-09-27

springMVC图片上传的处理方式详解

本文实例为大家分享了springMVC图片上传的处理方式,供大家参考,具体内容如下首先需要依赖的jar包:  commons-io  commons-io
2023-05-31

java怎么上传图片到服务器

图片上传步骤:客户端:创建HTML表单,包含“选择文件”按钮。服务器端:创建处理上传请求的Servlet/Controller。配置服务器允许文件上传,指定限制。上传过程:用户选择文件并提交表单。服务器接收上传请求,验证文件。服务器保存文件到指定目录,存储文件信息。服务器响应上传是否成功。Java实现:HTML表单包含文件输入框。Servlet接收上传文件,验证并保存文件。可配置文件大小限制和文件类型验证。
java怎么上传图片到服务器
2024-04-14

java实现图片上传至服务器

实现的思路:工具:MySQL,eclipse首先,在MySQL中创建了两个表,一个t_user表,用来存放用户名,密码等个人信息,一个t_touxiang表,用来存放上传的图片在服务器中的存放路径,以及图片名字和用户ID,T_touxiang表中的用户ID对应
java实现图片上传至服务器
2021-04-29

图片上传到云服务器的方法是什么

图片上传到云服务器的方法有多种,以下是常见的几种方法:1. FTP(文件传输协议):使用FTP客户端软件(如FileZilla)连接到云服务器,将图片文件从本地计算机上传到云服务器。2. SCP(Secure Copy):使用SCP命令行工
2023-09-16

图片上传到云服务器的方法是什么

图片上传到云服务器的方法本文介绍了通过不同云服务提供商(AWSS3、GCS、AzureBlobStorage)将图片上传到云服务器的步骤,涵盖了协议选择(HTTP和HTTPS)和上传代码示例。还提供了最佳实践建议,包括图像优化、CDN使用和安全考虑。
图片上传到云服务器的方法是什么
2024-04-11

轻松创建nodejs服务器(10):处理上传图片

本节我们将实现,用户上传图片,并将该图片在浏览器中显示出来。 这里我们要用到的外部模块是Felix Geisendörfer开发的node-formidable模块。它对解析上传的文件数据做了很好的抽象。 要安装这个外部模块,需在
2022-06-04

Discuz无法上传图片的处理办法分享

Discuz无法上传图片的处理办法分享在使用Discuz论坛系统的过程中,有时候会遇到上传图片失败的情况,这可能是由于服务器配置、权限设置等问题引起的。在本文中,将分享一些处理Discuz无法上传图片的方法,同时附上具体的代码示例,希望可
Discuz无法上传图片的处理办法分享
2024-03-10

Android使用post方式上传图片到服务器的方法

本文实例讲述了Android使用post方式上传图片到服务器的方法。分享给大家供大家参考,具体如下: public class UploadUtil {private stati
2022-06-06

前端云服务器图片上传的方法是什么

前端云服务器图片上传方法利用云服务器轻松实现图片上传功能。文章介绍了HTML表单提交、XMLHttpRequest、HTML5FileAPI和fetchAPI,四种常见的前端图片上传方法,每种方法的优缺点,并提供详细的示例代码,帮助开发者根据需求选择最合适的上传方法。
前端云服务器图片上传的方法是什么
2024-04-10

前端云服务器图片上传的方法是什么

前端云服务器图片上传的方法可以通过以下几种方式实现:1. 使用HTML的input标签和表单提交:在前端页面中创建一个input标签,设置type为file,用户选择图片后,通过表单提交的方式将图片传输到云服务器。```html```2.
2023-09-25

React图片压缩上传统一处理方式

这篇文章主要介绍了React图片压缩上传统一处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-21

uniapp上传图片和上传视频的实现方法

这篇文章主要给大家介绍了关于uniapp上传图片和上传视频的实现方法,文中还介绍了上传文件的方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-17

ckeditor上传图片的方法是什么

CKEditor 提供了多种方法来上传图片。以下是其中的一些方法:使用服务器端脚本:将图片上传到服务器并返回图片的 URL。通过将以下配置添加到 CKEditor 的 config.js 文件中,可以调用服务器端脚本来实现上传图片的功能。c
2023-10-23

js实现上传图片到服务器的

这篇文章主要介绍了js实现上传图片到服务器的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下HTML//多张图片上传multiple2023-06-14

编程热搜

目录