java 文件或图片的上传小demo
2017-03-15 00:00
253 查看
摘要: java,文件,图片上传
在进行上传之前需要
commons-fileupload-1.3.1.jar
commons-io-2.4.jar
这两个包。
前端代码:
在需要文件上传的表单中,需要把 enctype 设置为 multipart/form-data
后台的代码:
因为在页面使用了 multipart/form-data 方式进行提交,所有servlet后台不能用request.getParameter("name")来进行获取到对应的值,而是使用ServletFileUpload对象来进行解析。
在进行上传之前需要
commons-fileupload-1.3.1.jar
commons-io-2.4.jar
这两个包。
前端代码:
在需要文件上传的表单中,需要把 enctype 设置为 multipart/form-data
<form action="" method="post" enctype="multipart/form-data"> <table> <tr> <td>设施名称</td> <td><input type="text" name="name"></td> </tr> <tr> <td>类别</td> <td><input type="text" name="type"></td> </tr> <tr> <td>照片</td> <td><input type="file" name="phote"></td> </tr> <tr> <td>简介</td> <td> <textarea rows="10" cols="50" name="desc"></textarea> </td> </tr> <tr> <td></td> <td> <input type="submit" value="提交"> <input type="reset" value="重置"> </td> </tr> </table> </form>
后台的代码:
因为在页面使用了 multipart/form-data 方式进行提交,所有servlet后台不能用request.getParameter("name")来进行获取到对应的值,而是使用ServletFileUpload对象来进行解析。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("gb2312"); response.setCharacterEncoding("gb2312"); // 获取根目录对应的真实物理路径(即部署在服务器的地址) // 也就是说我们要把文件或图片存放到uploadImage该目录下 String path = getServletContext().getRealPath("uploadImage"); File uploadPath = new File(path); // 如果目录不存在 if (!uploadPath.exists()) { uploadPath.mkdir(); } // 临时目录 File tempPath = new File(getServletContext().getRealPath("temp")); if (!tempPath.exists()) { tempPath.mkdir(); } // DiskFileItemFactory:创建 FileItem 对象的工厂,可以设置相应的属性。 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置在内存中的大小 factory.setSizeThreshold(4096); // 如果大小超过了内存中的设置的上限,则存到该临时目录下 factory.setRepository(tempPath); ServletFileUpload upload = new ServletFileUpload(factory); // 上传文件或图片的最大的大小,如果文件超过这个限制,则抛出异常 upload.setSizeMax(1000000 * 20); try { //获取所有的请求域 List fileItems = upload.parseRequest(request); String name = null; String type = null; String desc = null; String fileName = null;// 文件或照片的名字 for (Iterator iter = fileItems.iterator(); iter.hasNext();) { //获取每个域 FileItem item = (FileItem) iter.next(); // 判断是文件还是文本信息 // 是普通的表单输入域 if (item.isFormField()) { if ("name".equals(item.getFieldName())) { //获取普通表单域的值 name = item.getString("gb2312").trim(); } if ("type".equals(item.getFieldName())) { type = item.getString("gb2312").trim(); } if ("desc".equals(item.getFieldName())) { desc = item.getString("gb2312").trim(); } } // file域 if (!item.isFormField()) { // 上传文件的名称和完整路径 fileName = item.getName(); long size = item.getSize(); // 判断是否选择了文件 if ((fileName == null || fileName.equals("")) && size == 0) { continue; } fileName = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length()); item.write(new File(uploadPath, fileName)); } } // 将文件或图片文件名写入数据库 String sql = null; db d = new db(); d.executeInsert(sql); //继续后续操作 } catch (Exception e) { System.out.println("上传失败"); e.printStackTrace(); } }
相关文章推荐
- java使用FtpClient上传图片文件
- 11级_Java_曹建波 9.13 Tcp实现上传文件和图片
- ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
- Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传
- 赵雅智_java 网络编程(3)之上传文件和图片
- 原java上传文件 以图片为例 纯Servlet实现
- Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传
- java实现文件上传下载和图片压缩代码示例
- 利用Spring MVC 上传图片文件 博客分类: Java总结文档
- java IO流实现文件上传的demo
- java 上传文件以及各种视频图片!
- java 在前端页面上传图片文件,验证是否为合法的图片
- JAVA上传文件图片到指定服务器目录
- JavaWeb文件上传图片到非工程目录,然后前端访问
- java上传图片文件
- 使用Java语言编写的Demo:上传文件至百度网盘(Baidu PCS)
- Java【代码】使用jspSmartUpload实现文件上传demo
- Java web 图片上传(文件上传)
- java js 文件图片通过FTP进行上传和同步