81,094
社区成员
发帖
与我相关
我的任务
分享
<form method="post" action="fileupload.do">
<input type="file" name="file" id="file" value="path"/>
</form>
private static final int BUFFER_SIZE = 300 * 1024;
private String path;
public String setPath(String path){this.path = path;}
private static void copy(File src, File dst) {
if(!dst.exists()) {
try {
dst.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
} else {
return;
}
try {
InputStream in = null ;
OutputStream out = null ;
try {
in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while (in.read(buffer) > 0 ) {
out.write(buffer);
}
} finally {
if ( null != in) {
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String upload(){
File loadFile = new File(path);
File saveFile = new File("你想存的路径");
copy(loadFile, saveFile);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
if (!DiskFileUpload.isMultipartContent(request)) { //如果非含文件域的表单提交则return
return;
}
/*设置当文件大于102400字节的时候文件的临时目录*/
DefaultFileItemFactory factory = new DefaultFileItemFactory();
factory.setSizeThreshold(102400);
File fileTemp = new File("D:/file/");
fileTemp.mkdirs();
factory.setRepository(fileTemp);
DiskFileUpload upload = new DiskFileUpload(factory);
upload.setSizeMax(1024000);
List<FileItem> items = null;
try {
items = upload.parseRequest(request); //将request解析成FileItem对象的集合
} catch (SizeLimitExceededException e) {
request.setAttribute("message", "<script>alert('上传失败:您上传的文件太大!请重新选择')</script>");
System.out.print("上传文件太大");
return;
}
for (FileItem item : items) { //遍历集合
if (item.isFormField()) { //如果普通的域
String name = item.getFieldName();
String value = item.getString("GB18030");
System.out.println("name : " + name + "\tvalue : " + value);
} else {
String filename = item.getName();
System.out.println("filename : " + filename);
int i = filename.lastIndexOf("\\");
filename = filename.substring(i + 1);
System.out.println("filename : " + filename);
File f = new File("D:/file/" + filename);
item.write(f);
System.out.print("上传成功");
}
}
} catch (Exception e) {
e.printStackTrace();
}
request.getRequestDispatcher(request.getParameter("/manager/back/zizhi.jsp")).forward(request, response);
}