上传图片到指定服务器
来源:互联网 发布:海湾消防主机联动编程 编辑:程序博客网 时间:2024/05/23 15:48
1 . android客户端代码
/** * 上传数据到指定服务器 * * @param actionUrl * @param file * @throws IOException */public void post(String actionUrl, File file) throws IOException {String BOUNDARY = "---------------------------7da2137580612"; //数据分割线 String PREFIX = "--"; String LINEND = "\r\n"; String MULIIPART_FROM_DATA = "multipart/form-data"; String CHARSET = "UTF-8";URL url = new URL(actionUrl);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true); // 允许输入conn.setDoOutput(true); // 允许输出conn.setUseCaches(false); // 不允许使用缓存conn.setRequestMethod("POST");conn.setRequestProperty("connection", "keep-alive");conn.setRequestProperty("Charset", CHARSET);conn.setRequestProperty("Content-Type", MULIIPART_FROM_DATA+ ";boundary=" + BOUNDARY);DataOutputStream dos = new DataOutputStream(conn.getOutputStream());// 发送文件if (file != null) {StringBuilder sb = new StringBuilder();sb.append(PREFIX);sb.append(BOUNDARY);sb.append(LINEND);sb.append("Content-Disposition: form-data; name=\"file\"; filename=\""+ file.toString() + "\"" + LINEND);sb.append("content-Type: application/octet-stream; charset="+ CHARSET + LINEND);sb.append(LINEND);dos.write(sb.toString().getBytes());InputStream is = new FileInputStream(file);byte[] buffer = new byte[2048];int len = -1;while ((len = is.read(buffer)) != -1) {dos.write(buffer, 0, len);}is.close();dos.write(LINEND.getBytes());// 请求结束标志byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINEND).getBytes();dos.write(end_data);dos.flush();dos.close();// 得到响应码int res = conn.getResponseCode();System.out.println("----------" + res);}}后台服务器端,采用servlet编写
package com.sunbirddata.servlet;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItemIterator;import org.apache.commons.fileupload.FileItemStream;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.fileupload.util.Streams;/** * Servlet implementation class ImageUploadServlet */public class ImageUploadServlet extends HttpServlet {private static final long serialVersionUID = 1L;File tmpDir = null; //零时保存目录File saveDir = null; //保存目录 /** * @see HttpServlet#HttpServlet() */ public ImageUploadServlet() { super(); // TODO Auto-generated constructor stub }/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubrequest.setCharacterEncoding("UTF-8");tmpDir = new File(request.getSession().getServletContext().getRealPath("/" + "temp")); // 临时目录if(!tmpDir.exists()) tmpDir.mkdir();saveDir = new File(request.getSession().getServletContext().getRealPath("/" + "image")); // 临时目录if(!saveDir.exists()) saveDir.mkdir();System.out.println("零时目录:"+tmpDir);System.out.println("保存目录:"+saveDir);if(ServletFileUpload.isMultipartContent(request)){DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(tmpDir); //指定临时上传目录factory.setSizeThreshold(1024*1024*100); //内存中缓存数据大小ServletFileUpload sfu = new ServletFileUpload(factory);sfu.setFileSizeMax(1024*1024*10); //单个上传文件最大尺寸sfu.setSizeMax(1024*1024*1024); //一次上传文件的总尺寸try {FileItemIterator fii = sfu.getItemIterator(request); //解析request请求对象while(fii.hasNext()){FileItemStream fis = fii.next(); //从集合中获得一个文件流if(!fis.isFormField() && fis.getName().length() > 0){ //过滤掉表单中的非文件域String fileName = fis.getName().substring(fis.getName().lastIndexOf("/"));BufferedInputStream bis = new BufferedInputStream(fis.openStream()); //获得文件输入流BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(saveDir,fileName))); //获得文件输出流Streams.copy(bis, bos, true); //写文件到指定的地址}}} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}3.服务器端需要加载一下两个包
可以再网上进行下载
- 上传图片到指定服务器
- 安卓中图片上传到指定的服务器
- 关于uEditor,上传图片到指定主机(图片服务器)
- JAVA上传文件图片到指定服务器目录
- JAVA上传文件图片到指定服务器目录
- 上传图片到服务器
- 上传图片到服务器
- 图片上传到服务器
- 图片上传到服务器
- 图片上传到服务器
- sturts图片上传到服务器
- Java上传图片到服务器
- android 上传图片到服务器
- Android: 上传图片到服务器
- java 上传图片到服务器
- Android上传图片到服务器
- 上传图片/文件到服务器
- Android 上传图片到服务器
- 简介cms
- UITextField被键盘遮挡问题
- 每日一题(13)——24点 (分治&递归)
- cms分类
- Java的原始类型(Primitive Type)
- 上传图片到指定服务器
- makefile中的脚本if编写
- cms的功能
- css经典书籍
- ubuntu10.4下安装和使用GMP高精度数学库
- 五个有用的过滤器
- Ubuntu 下使用OpenGL/GLUT的配置以及在Codeblocks中使用GLUT
- js验证手机号码(截止目前最新各种号段)
- JSP标准标签库2