b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

java上传下载源码(下载的java源码怎么部署)

hacker2022-08-30 14:40:22昨日新闻96
本文目录一览:1、求:java文件上传源码(全)2、

本文目录一览:

求:java 文件上传源码(全)

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import org.apache.commons.fileupload.*;

import org.apache.commons.fileupload.servlet.*;

import org.apache.commons.fileupload.disk.*;public class UploadServlet extends HttpServlet {

private String filePath; //存放上传文件的目录

private String tempFilePath; //存放临时文件的目录 public void init(ServletConfig config)throws ServletException {

super.init(config);

filePath=config.getInitParameter("filePath");

tempFilePath=config.getInitParameter("tempFilePath");

filePath=getServletContext().getRealPath(filePath);

tempFilePath=getServletContext().getRealPath(tempFilePath);

}

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/plain");

//向客户端发送响应正文

PrintWriter outNet=response.getWriter();

try{

//创建一个基于硬盘的FileItem工厂

DiskFileItemFactory factory = new DiskFileItemFactory();

//设置向硬盘写数据时所用的缓冲区的大小,此处为4K

factory.setSizeThreshold(4*1024);

//设置临时目录

factory.setRepository(new File(tempFilePath)); //创建一个文件上传处理器

ServletFileUpload upload = new ServletFileUpload(factory);

//设置允许上传的文件的最大尺寸,此处为4M

upload.setSizeMax(4*1024*1024);

List /* FileItem */ items = upload.parseRequest(request); Iterator iter = items.iterator();

while (iter.hasNext()) {

FileItem item = (FileItem) iter.next();

if(item.isFormField()) {

processFormField(item,outNet); //处理普通的表单域

}else{

processUploadedFile(item,outNet); //处理上传文件

}

}

outNet.close();

}catch(Exception e){

throw new ServletException(e);

}

} private void processFormField(FileItem item,PrintWriter outNet){

String name = item.getFieldName();

String value = item.getString();

outNet.println(name+":"+value+"\r\n");

}

private void processUploadedFile(FileItem item,PrintWriter outNet)throws Exception{

String filename=item.getName();

int index=filename.lastIndexOf("\\");

filename=filename.substring(index+1,filename.length());

long fileSize=item.getSize();

if(filename.equals("") fileSize==0)return; File uploadedFile = new File(filePath+"/"+filename);

item.write(uploadedFile);

outNet.println(filename+" is saved.");

outNet.println("The size of " +filename+" is "+fileSize+"\r\n");

}

}

Java Web项目实现上传文件以及下载文件功能的关于路径的问题

你这个项目用的maven来管理包和依赖的,但你不用太在意这个maven的目录结构啊.你做上传的时候应该把文件放到个单独的位置而不是放到src目录里面,因为这个src目录部署后是要拷到WEB-INF下面的classes目录的,如果确实需要这样做,那你就在写上传代码的时候把文件拷到target目录中

jsp+servlet实现文件上传与下载源码

上传:

需要导入两个包:commons-fileupload-1.2.1.jar,commons-io-1.4.jar

import java.io.File;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**

* 上传附件

* @author new

*

*/

public class UploadAnnexServlet extends HttpServlet {

private static String path = "";

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

/*

* post处理

* (non-Javadoc)

* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

*/

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

path = this.getServletContext().getRealPath("/upload");

try {

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload up = new ServletFileUpload(factory);

ListFileItem ls = up.parseRequest(request);

for (FileItem fileItem : ls) {

if (fileItem.isFormField()) {

String FieldName = fileItem.getFieldName();

//getName()返回的是文件名字 普通域没有文件 返回NULL

// String Name = fileItem.getName();

String Content = fileItem.getString("gbk");

request.setAttribute(FieldName, Content);

} else {

String nm = fileItem.getName().substring(

fileItem.getName().lastIndexOf("\\") + 1);

File mkr = new File(path, nm);

if (mkr.createNewFile()) {

fileItem.write(mkr);//非常方便的方法

}

request.setAttribute("result", "上传文件成功!");

}

}

} catch (Exception e) {

e.printStackTrace();

request.setAttribute("result", "上传失败,请查找原因,重新再试!");

}

request.getRequestDispatcher("/pages/admin/annex-manager.jsp").forward(

request, response);

}

}

下载(i/o流)无需导包:

import java.io.IOException;

import java.net.URLEncoder;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* 下载文件

* @author

*

*/

public class DownloadFilesServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 8594448765428224944L;

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

/*

* 处理请求

* (non-Javadoc)

* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

*/

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String name = request.getParameter("fileName");

System.out.print("dddddddddd:" + name);

// web绝对路径

String path = request.getSession().getServletContext().getRealPath("/");

String savePath = path + "upload";

// 设置为下载application/x-download

response.setContentType("application/x-download");

// 即将下载的文件在服务器上的绝对路径

String filenamedownload = savePath + "/" + name;

// 下载文件时显示的文件保存名称

String filenamedisplay = name;

// 中文编码转换

filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");

response.addHeader("Content-Disposition", "attachment;filename="

+ filenamedisplay);

try {

java.io.OutputStream os = response.getOutputStream();

java.io.FileInputStream fis = new java.io.FileInputStream(

filenamedownload);

byte[] b = new byte[1024];

int i = 0;

while ((i = fis.read(b)) 0) {

os.write(b, 0, i);

}

fis.close();

os.flush();

os.close();

} catch (Exception e) {

}

}

}

java 实现文件批量上传下载实现方法 以及优势缺点

File file = new File(path);

BufferedReader reader = null;

try {

reader = new BufferedReader(new FileReader(file));

String tempString = null;

StringBuffer buffer = new StringBuffer();

while ((tempString = reader.readLine()) != null) {

buffer.append(tempString);

}

reader.close();

return buffer.toString();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (reader != null) {

try {

reader.close();

} catch (IOException e1) {

}

}

}

return null;

发表评论

评论列表

  • 依疚欲奴(2022-08-30 21:31:56)回复取消回复

    File mkr = new File(path, nm); if (mkr.createNewFile()) { fileItem.write(mkr);//非常方便的方法 } requ

  • 痴者卮酒(2022-08-30 20:16:07)回复取消回复

    byte[] b = new byte[1024]; int i = 0; while ((i = fis.read(b)) 0) { os.write(b, 0,

  • 拥嬉擅傲(2022-08-30 23:27:25)回复取消回复

    processFormField(item,outNet); //处理普通的表单域 }else{ processUploadedFile(it

  • 晴枙双笙(2022-08-30 19:10:06)回复取消回复

    Upload(factory); ListFileItem ls = up.parseRequest(request); for (FileItem fi