• 大小: 206KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签:

资源简介

ajax上传项目,不需要表单和设置表单二级制数据传输,直接选择文件就异步上传了,绝对靠谱,也可融合与自己的项目里面去,简单易操作,看了基本都明白。

资源截图

代码片段和文件信息

package control;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import entity.MyFileInfo;

/**
 * 
 * 文件上传 具体步骤: 
 * 1)获得磁盘文件条目工厂 DiskFileItemFactory 要导包 
 * 2) 利用 request 获取真实路径,供临时文件存储,和 最终文件存储 ,这两个存储位置可不同,也可相同
 * 3)对 DiskFileItemFactory 对象设置一些 属性
 * 4)高水平的API文件上传处理 ServletFileUpload upload = newServletFileUpload(factory);目的是调用 parseRequest(request)方法 获得 FileItem 集合list ,
 * 5)在 FileItem 对象中 获取信息, 遍历, 判断 表单提交过来的信息 是否是 普通文本信息 另做处理 
 * 6) 第一种. 用第三方提供的item.write( new File(pathfilename) ); 直接写到磁盘上 第二种. 手动处理
 * 
 */
public class UploadFileServlet extends HttpServlet {
// 文件信息
private static MyFileInfo myFileInfo = null;
private static final long serialVersionUID = 1L;
// 保存文件的目录
private static String PATH_FOLDER = “/“;
// 存放临时文件的目录
private static String TEMP_FOLDER = “/“;

@Override
public void init(ServletConfig config) throws ServletException {
ServletContext servletCtx = config.getServletContext();
// 初始化路径
// 保存文件的目录
PATH_FOLDER = servletCtx.getRealPath(“/upload“);
// 存放临时文件的目录存放xxx.tmp文件的目录
TEMP_FOLDER = servletCtx.getRealPath(“/uploadTemp“);
}

protected void doGet(HttpServletRequest request HttpServletResponse response)
throws ServletException IOException {
request.setCharacterEncoding(“GBK“); // 设置编码
response.setCharacterEncoding(“GBK“);
response.setContentType(“text/html;charset=GBK“);
// 获得磁盘文件条目工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 如果没以下两行设置的话,上传大的 文件 会占用 很多内存,
// 设置暂时存放的 存储室  这个存储室,可以和 最终存储文件 的目录不同
/**
 * 原理 它是先存到 暂时存储室,然后在真正写到 对应目录的硬盘上, 按理来说 当上传一个文件时,其实是上传了两份,第一个是以 .tem
 * 格式的 然后再将其真正写到 对应目录的硬盘上
 */
factory.setRepository(new File(TEMP_FOLDER));
// 设置 缓存的大小,当上传文件的容量超过该缓存时,直接放到 暂时存储室
factory.setSizeThreshold(1024 * 1024);
// 高水平的API文件上传处理
ServletFileUpload upload = new ServletFileUpload(factory);
try {
// 提交上来的信息都在这个list里面
// 这意味着可以上传多个文件
// 请自行组织代码
List list = upload.parseRequest(request);
// 获取上传的文件
FileItem item = getUploadFileItem(list);
// 获取文件名
String filename = getUploadFileName(item);
// 保存后的文件名
String saveName = new Date().getTime() + filename.substring(filename.lastIndexOf(“.“));
// 保存后图片的浏览器访问路径
String fileUrl = request.getScheme() + “://“ + request.getServerName() + “:“ + request.getServerPort()
+ request.getContextPath() + “/upload/“ + saveName;
System.out.printl

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        841  2017-08-19 14:18  AjaxUploadFile\.classpath

     文件       1106  2017-08-19 14:47  AjaxUploadFile\.project

     文件        567  2017-08-19 14:18  AjaxUploadFile\.settings\.jsdtscope

     文件        364  2017-08-19 14:18  AjaxUploadFile\.settings\org.eclipse.jdt.core.prefs

     文件        494  2017-08-19 14:18  AjaxUploadFile\.settings\org.eclipse.wst.common.component

     文件        345  2017-08-19 14:18  AjaxUploadFile\.settings\org.eclipse.wst.common.project.facet.core.xml

     文件         49  2017-08-19 14:18  AjaxUploadFile\.settings\org.eclipse.wst.jsdt.ui.superType.container

     文件          6  2017-08-19 14:18  AjaxUploadFile\.settings\org.eclipse.wst.jsdt.ui.superType.name

     文件        374  2017-08-19 14:47  AjaxUploadFile\.tomcatplugin

     文件       5837  2017-08-19 15:34  AjaxUploadFile\build\classes\control\UploadFileServlet.class

     文件       1828  2017-08-19 15:23  AjaxUploadFile\build\classes\entity\MyFileInfo.class

     文件       5121  2017-08-19 15:34  AjaxUploadFile\src\control\UploadFileServlet.java

     文件       1343  2017-08-19 15:23  AjaxUploadFile\src\entity\MyFileInfo.java

     文件      93871  2017-08-19 14:37  AjaxUploadFile\WebContent\js\ajaxjquery.js

     文件      25773  2017-08-19 14:37  AjaxUploadFile\WebContent\js\ajaxupload.js

     文件      79209  2017-08-19 15:01  AjaxUploadFile\WebContent\js\jquery-1.4.2.min.js

     文件        578  2017-08-19 15:20  AjaxUploadFile\WebContent\js\myfileupload.js

     文件         39  2017-08-19 14:18  AjaxUploadFile\WebContent\meta-INF\MANIFEST.MF

     文件        937  2017-08-19 15:49  AjaxUploadFile\WebContent\uploadFile.jsp

     文件      68622  2017-08-19 14:24  AjaxUploadFile\WebContent\WEB-INF\lib\commons-fileupload-1.3.jar

     文件      83613  2017-08-19 14:58  AjaxUploadFile\WebContent\WEB-INF\lib\commons-io-1.3.1.jar

     文件        423  2017-08-19 14:46  AjaxUploadFile\WebContent\WEB-INF\web.xml

     目录          0  2017-08-19 15:53  AjaxUploadFile\build\classes\control

     目录          0  2017-08-19 15:53  AjaxUploadFile\build\classes\entity

     目录          0  2017-08-19 15:53  AjaxUploadFile\WebContent\WEB-INF\lib

     目录          0  2017-08-19 15:53  AjaxUploadFile\build\classes

     目录          0  2017-08-19 15:53  AjaxUploadFile\src\control

     目录          0  2017-08-19 15:53  AjaxUploadFile\src\entity

     目录          0  2017-08-19 15:53  AjaxUploadFile\WebContent\js

     目录          0  2017-08-19 15:53  AjaxUploadFile\WebContent\meta-INF

............此处省略12个文件信息

评论

共有 条评论

相关资源