Java文件上传功能代码 —— 普遍适用

一. 前言
  通过之前的博客,基本上已经将各个框架上传文件的功能逻辑理清楚,有文件下载肯定就需要有文件上传,那么接下来会跟大家一起分享各个框架上传文件的功能代码;
  那么,今天我们将重点放在各个框架适用的java文件上传功能代码方面,直接切入主题:

二. 实例

  1.方法实例1:

	//upload file,普通java上传文件方式
	public String uploadFile() throws IOException{
		
		//file为获取到的前台的文件,每个框架获取的方式不一样,可按需去查询
		File file = "前台的文件";
		
		//fileName为文件的名称,可通过file获取,不同框架获取的方式不一样
		String fileName = "文件的名称,包括格式";
		
		//获取文件的项目的根路径,不同框架获取的方式不一样,这里使用struts2的获取方式
		String basePath=ServletActionContext.getServletContext().getRealPath("/upload");
		
		//拼接成完整的指定的文件路径名,创建新文件
        String filePath = basePath+File.separator+fileName;
        File filelocal = new File(filePath);
        if(filelocal.exists()){
        	filelocal.delete();
        }
		
		//使用输入流读取前台的file文件				
        InputStream is=new FileInputStream(file);  
		
		//循环读取输入流文件内容,通过输出流将内容写入新文件
        OutputStream os=new FileOutputStream(filelocal);  
        byte buffer[]=new byte[1024];  
        int cnt=0;  
        while((cnt=is.read(buffer))>0){  
            os.write(buffer, 0, cnt);  
        }  
        //关闭输入输出流
        os.close();
        is.close();  
        
        return null;            
	}

  2.方法实例2,连起来的简单代码工具类:


	//file为上传的文件File,转换为inputstream流	
	InputStream stream=new FileInputStream(file);
	//创建本地的临时空文件
	File fileTem = new File("C:\\img\\tem"+new Date().getTime()+".jpg"); 
	// 获得上传文件输入流
	BufferedInputStream in = new BufferedInputStream(stream);
	// 获得本地文件输出流
	BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fileTem));
	// 将上传文件写到指定的本地文件里
	org.apache.commons.fileupload.util.Streams.copy(in, out, true);

	//关闭输入输出流
	in.close();
	out.close();
	

三. 总结
  1.使用java普通的上传文件的方式上传文件,主要涉及的两个点就是java对文件的输入输出流(inputStream和outputStream),如果程序员的输入输出流基本功够扎实的话对这些基本上都是得心应手的;

  2.java上传文件的基本逻辑就是:获取前台的file文件》获取文件名(包括格式)》获取指定保存上传文件的根路径》根据根路径和文件名,创建新文件》通过输入流循环读取前台的file文件》通过输出流循环将读取到的file文件写入到创建的新文件》关闭输入输出流;所以,如果了解了上传文件的基本逻辑之后,在解决上传问题的时候就游刃有余了

上一篇:jfinal框架文件下载功能代码

下一篇:ssh框架之springmvc文件上传功能代码

  • 11
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个简单的Java文件上传功能代码示例: ```java import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @WebServlet("/upload") @MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB maxFileSize = 1024 * 1024 * 10, // 10MB maxRequestSize = 1024 * 1024 * 50) // 50MB public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String uploadPath = "path/to/upload/directory"; // 设置文件上传的目录 File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } try { for (Part part : request.getParts()) { String fileName = part.getSubmittedFileName(); String filePath = uploadPath + File.separator + fileName; part.write(filePath); } response.getWriter().println("文件上传成功!"); } catch (IOException ex) { response.getWriter().println("文件上传失败: " + ex.getMessage()); } } } ``` 这段代码使用了Servlet 3.0的`@MultipartConfig`注解来支持文件上传功能。在`doPost`方法中,首先设置了文件上传的目录,然后遍历请求中的每个部分(即上传的文件),获取文件名并将其写入到指定的目录下。 请注意,上述代码仅作为示例,你需要根据你的实际需求进行适当的修改和完善。同时,确保在部署应用程序时设置正确的文件上传目录,并根据需要处理异常情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值