1. 程式人生 > >Android、IOS 圖片上傳介面(Java實現Servlet)。

Android、IOS 圖片上傳介面(Java實現Servlet)。

package com.ninepoint.babystar.server.action;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.log4j.Logger;

import com.ninepoint.babystar.server.bean.ResultBaseBean;
/**
 * 
 * @Description 圖片上傳介面(Servlet實現)支援引數和多張圖片的上傳
 * @author nier_ni
 * @date 2015-9-26 上午11:05:52 
 * @version
 */
public class UploadFileServlet extends HttpServlet {  
	/** @Fields serialVersionUID: */
  	
	private static final long serialVersionUID = -4903483985922185852L;
	private final Logger logger = Logger.getLogger(UploadFileServlet.class);
	 
	public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
		String realPath = this.getServletContext().getRealPath("images");  //圖片儲存路徑
		ResultBaseBean result = new ResultBaseBean();
		result.setResult(0);
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);  
        if(isMultipart){  
        	/**
        	 * 1、上傳是否有資料;
        	 * 2、圖片存放路徑;
        	 * 3、圖片是否儲存成功。 result 1、上傳成功,0、上傳失敗。
        	 */
            String msg = null;
            HashMap<String,String> params = uploadImg(realPath,request);
            responseOutWithJson(response,result);
        }  
    }  
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
    throws ServletException, IOException {  
    	this.doGet(request,response);
    }
    /**
     * 
     * @Description 上傳圖片
     * @param realPath
     * @param request
     */
    public HashMap<String,String> uploadImg(String realPath, HttpServletRequest request){
    	HashMap<String,String> hashMap = new HashMap<String, String>();
    	int i = 0;
    	String fileName = null;
    	File dir = new File(realPath);
        DiskFileItemFactory factory = new DiskFileItemFactory();  
        ServletFileUpload upload = new ServletFileUpload(factory);  
        upload.setSizeMax(1024*1024*5*9);
        upload.setHeaderEncoding("utf-8");  
        try {  
            List<FileItem> items = upload.parseRequest(request);  
            for(FileItem item : items){  
                if(item.isFormField()){ //username="username"  
                    String name = item.getFieldName();  
                    String value = item.getString("utf-8");  
                    //System.out.println(name + " = " + value);  
                    hashMap.put(name, value);
                } else { //檔案  
                    String name = item.getName();
                    fileName = System.currentTimeMillis() + name.substring(name.lastIndexOf("."));
                   // item.write(new File(dir, System.currentTimeMillis() + name.substring(name.lastIndexOf("."))));
                    item.write(new File(dir, fileName));  
                    hashMap.put("imgs"+i,realPath.substring(realPath.lastIndexOf("\\")).substring(1) +"/"+ fileName);
                } 
            }  
            hashMap.put("num",i+"");
        } catch (Exception e) {  
            e.printStackTrace();  
            logger.error("圖片上傳失敗。",e);
        } 
        return hashMap;
    }
    /** 
     * 以JSON格式輸出 
     * @param response 
     */  
    protected void responseOutWithJson(HttpServletResponse response,  
            Object responseObject) {  
        //將實體物件轉換為JSON Object轉換  
        JSONObject responseJSONObject = JSONObject.fromObject(responseObject);  
        response.setCharacterEncoding("UTF-8");  
        response.setContentType("application/json; charset=utf-8");  
        PrintWriter out = null;  
        try {  
            out = response.getWriter();  
            out.append(responseJSONObject.toString());  
            logger.debug("返回是\n");  
            logger.debug(responseJSONObject.toString());  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            if (out != null) {  
                out.close();  
            }  
        }  
    }
}
結果基類
package com.ninepoint.babystar.server.bean;

import java.io.Serializable;

import net.sf.json.JSONObject;

/**
 * 請求返回結果基類。
 * 返回結果的公共資料可以放在此類
 * @author nier_ni
 *
 */
public class ResultBaseBean implements Serializable{

	private static final long serialVersionUID = 7755697531438413626L;
	
	/**
	 * 請求結果 1代表成功  0代表失敗
	 * 預設為成功
	 */
	protected int result = 1;
	/**
	 * 錯誤編碼 
	 * 只有當 result為0時才有 errorCode 和 errorMsg
	 */
	protected String errorCode = "";
	/**錯誤資訊*/
	protected String errorMsg = "";
	
	protected Object data = null;
	
	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	public int getResult() {
		return result;
	}
	
	public void setResult(int result) {
		this.result = result;
	}
	
	public String getErrorCode() {
		return errorCode;
	}

	public void setErrorCode(String errorCode) {
		this.errorCode = errorCode;
	}

	public String getErrorMsg() {
		return errorMsg;
	}
	
	public void setErrorMsg(String errorMsg) {
		this.errorMsg = errorMsg;
	}
	
	public JSONObject toJsonObject(){
		JSONObject jo = new JSONObject();
		jo.put("result", result);
		jo.put("errorCode", errorCode);
		jo.put("errorMsg", errorMsg);
		jo.put("data", data.toString());
		return jo;
	}
	
	@Override
	public String toString() {
		return this.toJsonObject().toString();
	}
}
web.xml配置
<servlet>  
<span style="white-space:pre">	</span><servlet-name>uploadFileServlet</servlet-name>  
<span style="white-space:pre">	</span><servlet-class>com.ninepoint.babystar.server.action.UploadFileServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
	<servlet-name>uploadFileServlet</servlet-name>  
	<url-pattern>/uploadFileServlet</url-pattern>  
</servlet-mapping>  

相關推薦

AndroidIOS 圖片介面Java實現Servlet

package com.ninepoint.babystar.server.action; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; imp

【移動端實現】相機喚起及圖片功能包括微信

前言 目前有個需求是圖片拍照上傳的功能,但是我就是死活掉不起相機。。。總是開啟的是檔案目錄OR上傳圖片。。。。而不是相機。。。 所以對比了下 程式碼: 參考了百度移動端實現方式。。。程式碼很簡單,對就這一句! <input type="file" acce

改變dede圖片路徑商品-縮圖去掉/allimg/ymd/

include\common.inc.phpline185://上傳的普通圖片的路徑,建議按預設//lyy $cfg_image_dir = $cfg_medias_dir.'/allimg';$cfg

php圖片支持縮放裁剪圖片縮略功能

php圖片上傳類(支持縮放、裁剪、圖片縮代碼: /** * @author [Lee] <[<[email protected]>]> * 1、自動驗證文件是表單提交的文件還是base64流提交的文件 * 2、驗證圖片類型是否合法 * 3、驗證圖片尺寸是否合法 * 4、驗證圖片大小是否合法

PHP 圖片 AIP圖片介面,視訊同理,只需改動jpg,png等為mp4,flv等)

PHP上傳的簡單案例:  Html檔案:<html> <form action="index.php" name="form" method="post" enctype="multipart/form-data"> <input ty

ASP.NET Core WebAPI圖片介面之整合IdentityServer4授權訪問附原始碼

點選上方“程式設計師大咖”,選擇“置頂公眾號”關鍵時刻,第一時間送達!來源:依樂祝cnblogs

ssm整合-圖片功能

需要 PE 添加用戶 名稱 simple target url 完整 dsi 本文介紹 ssm (Spring+SpringMVC+Mybatis)實現上傳功能。 以一個添加用戶的案例介紹(主要是將上傳文件)。 一、需求介紹 我們要實現添加用戶的時候上傳圖片(其實任何文件都

二十七單張圖片預覽

第一部分 ajax 效果 document 圖片 pos itl .data title html部分 <div class="new-store-phone"> <span class="phone-title">營業執照&nbsp;

app端圖片介面(tp5)

//檢視層  <div class="approve_NI_3">        <div class="approve_NI_3A">            &l

UEditor 圖片配置PHP

修改config.php檔案第11,12行 線上 "imageUrlPrefix": "http://www.leition.com/", /* 圖片訪問路徑字首 */ "imagePathFormat": "upload/image/{yyyy}{mm}{dd}/

IOS 圖片處理 圖片壓縮 圖片處理

提到從攝像頭/相簿獲取圖片是面向終端使用者的,由使用者去瀏覽並選擇圖片為程式使用。在這裡,我們需要過UIImagePickerController類來和使用者互動。 使用UIImagePickerController和使用者互動,我們需要實現2個協議<UIImagePicker

微信小微商戶圖片介面

先貼上圖片上傳文件地址 https://pay.weixin.qq.com/wiki/doc/api/download/img_upload.pdf 圖片上傳介面返回的media_id在申請入駐介面時有用,所以一開始就得把這個調通,才能繼續往下走申請入駐介面。 下面直接上

記錄一次使用form表單完成圖片功能相容ie9

1.前臺頁面 <div class="dform_con" style="position: relative;" id="uploadform"> <iframe id="file_upload_return" style="d

Springmvc傳單張圖片圖片並顯示圖片

1、在pom加入jar: <dependency> <groupId>commons-fileupload</groupId> <artifac

圖片功能FastDFS圖片伺服器 kindEditor富文字編輯器

第一步 : 新增jar包                     Commons-io、fileupload,兩個jar包 第二步:在springmvc.xml中配置多媒體解析器 &

Asp.NetCoreWebApi圖片介面(二)整合IdentityServer4授權訪問(附原始碼)

寫在前面 本文地址:http://www.cnblogs.com/yilezhu/p/9315644.html 作者:yilezhu 上一篇關於Asp.Net Core Web Api圖片上傳的文章使用的是mongoDB進行圖片的儲存,文章釋出後,張隊就來了一句,說沒有使用GridFS。的確博主只是進行了簡

tp5中圖片介面

1:移動端頁面:2:表單:重點圖片的uploadFile()事件<div id="approve_NI">    <div class="approve_NI_top">        <div class="approve_NI_top2"&g

springmvc圖片jquery 圖片預覽

寬為限 緊用功 功夫到 滯塞通 簡介 專案需求,需要做圖片上傳功能,圖片上傳肯定得給個預覽嘛,然後就找了下面這個方案 ajaxfileupload外掛上傳 ajaxfileupload.js網上傳了好幾個版本,選擇自己可以使用的就好了。這個外掛是N多

spring boot使用nginx和ftp伺服器實現圖片下載windows server

本人使用的springboot為1.5.6版本<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-pa

vue 圖片元件簡單封裝

import {getUploadImg,saveUploadImg,removeUploadImg} from "../../util/tool/home" export default { props:["orderId",'skuId'] , data(