servlet远程文件上传
来源:互联网 发布:禁用独立显卡 linux 编辑:程序博客网 时间:2024/05/18 21:44
设置表单的提交方式为 "post",并且,还要设置 "enctype=multipart/form-data"。
import java.io.IOException;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Hashtable;
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;
import com.alibaba.fastjson.JSON;
public class ReceiveFileSeverlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
// 解析参数
String jsonStr = "";
// String checkResult = checkKey("api_key_mobile", request.getParameter("key"));
// if (!"".equals(checkResult)) {
//
// response.setCharacterEncoding("UTF-8");
// response.getWriter().print(checkResult);
// return;
// }
Hashtable<String, String> formDatas = new Hashtable<String, String>();
List<File> uploadFiles = new ArrayList<File>();
try {
String str1 = AppConfig.getInstance().getApplicationRoot() + File.separator + "upload" + File.separator;
DiskFileItemFactory localDiskFileItemFactory = new DiskFileItemFactory();
localDiskFileItemFactory.setRepository(new File(str1 + "tmp"));
localDiskFileItemFactory.setSizeThreshold(4194304);
ServletFileUpload localServletFileUpload = new ServletFileUpload(localDiskFileItemFactory);
localServletFileUpload.setHeaderEncoding("UTF-8");
List<FileItem> localList = localServletFileUpload.parseRequest(request);
for (int i = 0; i < localList.size(); i++) {
FileItem localFileItem = localList.get(i);
if (!localFileItem.isFormField()) {
if ("".equals(localFileItem.getName())) {
continue;
}
// File localFile = new File(str1 + getNewFileName(localFileItem.getName()));
File localFile = new File(str1 + localFileItem.getName());
localFileItem.write(localFile);
String str2 = localFileItem.getName();
if ((str2.toLowerCase().endsWith(".jsp")) || (str2.toLowerCase().endsWith(".bat")) || (str2.toLowerCase().endsWith(".exe"))) {
localFile.delete();
} else {
uploadFiles.add(localFile);
}
} else {
formDatas.put(localFileItem.getFieldName(), localFileItem.getString("UTF-8").trim());
}
}
} catch (Exception e) {
AppLogger.getInstance().errorLog("上传文件出错", e);
}
// Iterator localIterator = request.getParameterMap().keySet().iterator();
// while (localIterator.hasNext())
// {
// String str1 = localIterator.next().toString();
// String str2 = request.getParameter(str1);
// if (str2 == null) {
// continue;
// }
// formDatas.put(str1, str2.trim());
// }
Connection con = null;
try {
con = DBConnectionPool.getInstance().getConnection();
con.setAutoCommit(false);
// 处理文件
jsonStr = uploadFile(con, uploadFiles);
con.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (con != null)
try {
con.rollback();
con.close();
} catch (Exception localException3) {
}
}
response.setCharacterEncoding("UTF-8");
response.getWriter().print(jsonStr);
}
private String uploadFile(Connection con, List<File> uploadFiles) throws Exception {
Hashtable<String, String> jsonHash = new Hashtable<String, String>();
File file = uploadFiles.get(0);
String imageDir = Constants.UPLOAD_REAL_PATH + File.separator + "serviceReport" + File.separator;
if (file.exists()) {
file.renameTo(new File(imageDir + File.separator + file.getName()));
jsonHash.put("status", "1"); // 成功
}
return JSON.toJSONString(jsonHash);
}
/**
* 重新命名图片
* @param paramString
* @return
* @throws Exception
*/
// private String getNewFileName(String paramString) throws Exception {
// int i = paramString.lastIndexOf('.');
// String str = StringUtil.getRandomString(10);
// return str + DateTimeUtil.getCurrentDateTime().replaceAll("-", "").replaceAll(":", "").replaceAll(" ", "") + paramString.substring(i);
// }
// private String checkKey(String configKey, String key) {
// Hashtable<String, String> jsonHash = new Hashtable<String, String>();
// // 判断来源 是否合法
// String tempKey = key;
// if (!tempKey.equals(AppConfig.getInstance().getParameterConfig().getParameter(configKey))) {
// jsonHash.put("result", "-1"); // 非法请求
// jsonHash.put("data", "非法请求");
// return JSON.toJSONString(jsonHash);
// }
// return "";
// }
}
0 0
- servlet远程文件上传
- Flex + servlet 上传文件
- JSP+servlet上传文件
- servlet文件上传
- Servlet文件上传
- Servlet上传文件
- 文件上传servlet应用
- jsp servlet文件上传
- 文件上传Servlet实例
- Servlet文件上传代码
- java servlet 文件上传
- servlet中的文件上传
- 文件上传Servlet例子
- Servlet实现文件上传
- Servlet 上传文件(转)
- Servlet实现文件上传
- servlet之上传文件
- servlet 文件上传
- 基于easyui开发Web版Activiti流程定制器详解(五)——Draw2d详解(一)
- Web图片保存的艺术(JPG)
- 线性表——表
- VS2012快捷键大全
- Python 机器学习——解决过拟合的方法
- servlet远程文件上传
- 转雅虎web前端网站优化 34条军规
- ActivityThread绑定looper思考
- java常用类库之日期操作类
- android破解和重新打包
- AMD发布LiquidVR SDK 1.0 提供即插即用的虚拟现实体验--看看最新的虚拟现实
- 1033. 旧键盘打字(20)
- 欢迎使用CSDN-markdown编辑器
- 基于easyui开发Web版Activiti流程定制器详解(六)——Draw2d的扩展(一)