Android 图片上传 服务器端(一)

来源:互联网 发布:淘宝刷qq钻是真的吗 编辑:程序博客网 时间:2024/06/05 22:48

直接上浏览器端upload.jsp代码(为测试服务器端)

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>upload</title></head><body><center>  <!-- /Myweb/upload.do -->  <form action="${pageContext.request.contextPath}/upload.do"  method="post" enctype="multipart/form-data">    <table>       <tr>        <td>        Name        </td>        <td>           <input type="text" name="Name">        </td>     </tr>     <tr>        <td>        Gender        </td>        <td>           <input type="text" name="Gender">        </td>     </tr>      <tr>        <td>                             请选择一个上传文件        </td>        <td>           <input type="file" name="Image">        </td>     </tr>     <tr>        <td>           <input type="submit" value="上传">        </td>          <td>           <input type="reset" value="重置">        </td>      </tr>    </table>       </form></center></body></html>
<form action="${pageContext.request.contextPath}/upload.do"  method="post" enctype="multipart/form-data"> 注意enctype="multipart/form-data" (复杂的数据提交)和{pageContext.request.contextPath}/upload.do工程访问路径

还有就是字符集统一使用utf-8 小心中文乱码。

2.服务器端,采用commons-fileupload  来实现文件上传,仍然使用Servlet

commons-fileupload-1.3.1.jar+ commons-io-2.4.jar(本人出现兼容报错)

代码如下

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//判断是否是复杂表单提交    boolean isMutipart=ServletFileUpload.isMultipartContent(request);    //    if(isMutipart)    {    //配置缓存工厂     DiskFileItemFactory factory=new DiskFileItemFactory();          //设置缓存大小     factory.setSizeThreshold(1024*1024*2);     File temp=new File("D:\\temp");     if (!temp.exists()) {temp.mkdir();}     factory.setRepository(temp);          ServletFileUpload upload=new ServletFileUpload(factory);    // upload.setHeaderEncoding("utf-8");     upload.setFileSizeMax(1024*1024*5);     upload.setSizeMax(1024*1024*6);          //获取提交的集合     try {List<FileItem>items=upload.parseRequest(request);if(items!=null){for(FileItem item :items){if(item.isFormField()){//一般数据System.out.println(item.getFieldName());System.out.println(item.getString("utf-8"));}else {String pathString=item.getName();if(pathString.contains("\\")){int index=pathString.lastIndexOf("\\");pathString=pathString.substring(index+1);}System.out.println(pathString);//复杂文件try {item.write(new File("D:\\"+pathString));response.getWriter().write("upload success!");} catch (Exception e) {e.printStackTrace();response.getWriter().write("upload fail.");}}}}} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}               }    else {return;}    }

传送门: [rar文件] andriod、iOS服务器端代码之文件上传



0 0
原创粉丝点击