和普通的上傳請求一樣,你可以使用commons-upload來解析請求,spring的話可以通過action的注解參數(shù)來獲取上傳的文件,jfinal可以用getFile()方法來獲取。
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的河北網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
如果你想簡單,可以以字節(jié)流的形式發(fā)送文件,webuploder有個參數(shù)sendAsBinary ,將其設置為true,這樣你java后端用request.getInputStream()即可獲取文件的字節(jié)流,文件名等參數(shù)你可以通過request.getParameter()方法獲得。推薦你這么做,最簡單的方式。
寫一個servlet或jsp來接收,在servlet或jsp處理業(yè)務邏輯,后返回處理結(jié)果或新的數(shù)據(jù)
如jsp:
%@ page errorPage="/common/error/error.jsp" %
%@ page contentType="text/html;charset=GBK"%
%
String planeNumber = request.getParameter("planeNumber");
String planeType = com.aerolink.aocs.system.parameter.list.PlaneTypeFactory.getPlaneType(planeNumber);
response.getWriter().write(planeType);%
使用一些已有的組件幫助我們實現(xiàn)這種上傳功能。常用的上傳組件:Apache的CommonsFileUploadJavaZoom的UploadBeanjspSmartUpload以下,以FileUpload為例講解1、在jsp端要注意enctype="multipart/form-data"然后只需要放置一個file控件,并執(zhí)行submit操作即可2、web端核心代碼如下:publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("UTF-8");DiskFileItemFactoryfactory=newDiskFileItemFactory();ServletFileUploadupload=newServletFileUpload(factory);try{Listitems=upload.parseRequest(request);Iteratoritr=items.iterator();while(itr.hasNext()){FileItemitem=(FileItem)itr.next();if(item.isFormField()){System.out.println("表單參數(shù)名:"+item.getFieldName()+",表單參數(shù)值:"+item.getString("UTF-8"));}else{if(item.getName()!=null!item.getName().equals("")){System.out.println("上傳文件的大小:"+item.getSize());System.out.println("上傳文件的類型:"+item.getContentType());System.out.println("上傳文件的名稱:"+item.getName());FiletempFile=newFile(item.getName());Filefile=newFile(sc.getRealPath("/")+savePath,tempFile.getName());item.write(file);request.setAttribute("upload.message","上傳文件成功!");}else{request.setAttribute("upload.message","沒有選擇上傳文件!");}}}}catch(FileUploadExceptione){e.printStackTrace();}catch(Exceptione){e.printStackTrace();request.setAttribute("upload.message","上傳文件失敗!");}request.getRequestDispatcher("/uploadResult.jsp").forward(request,response);}
Uploadify 是一個比較坑的東西,得用servlet, web.xml里配置 然后servlet接收
servlet
servlet-nameupload/servlet-name
servlet-classcom.action.upload/servlet-class
/servlet
servlet-mapping
servlet-nameupload/servlet-name
url-pattern/upload/FileUploadServlet/url-pattern
/servlet-mapping
servlet里代碼
public void doGetAndPost(HttpServletRequest request,
HttpServletResponse response){
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e) {
logger.error("后臺添加圖片,request設置編碼符失?。?{}",e.getMessage());
}
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
List fileList = null;
try {
fileList = upload.parseRequest(request);
} catch (FileUploadException ex) {
ex.printStackTrace();
return;
}
String imageName = null;
IteratorFileItem it = fileList.iterator();
while (it.hasNext()) {
FileItem item = it.next();
if (!item.isFormField()) {
Random r = new Random();
int rannum = (int) (r.nextDouble() * (9999 - 1000 + 1)) + 1000;
imageName=getNowStrDate() + rannum;
FileBean fileBean = new FileBean();
fileBean.setFileName(item.getName());
fileBean.setFileExtension(item.getName().substring(item.getName().indexOf(".")+1));
FileBean flbn;
try {
//文件服務器處理上傳圖片
flbn = FastDFSUtil.upload(fileBean, item.getInputStream());
} catch (IOException e) {
logger.info("添加圖片,上傳文件服務器失敗!",e);
}
}
}
}
/**
*?文件上傳到微信服務器
*?@param?fileType?文件類型
*?@param?filePath?文件路徑
*?@return?JSONObject
*?@throws?Exception
*/
public?static?JSONObject?send(String?fileType,?String?filePath)?throws?Exception?{??
String?result?=?null;??
File?file?=?new?File(filePath);??
if?(!file.exists()?||?!file.isFile())?{??
throw?new?IOException("文件不存在");??
}??
/**?
*?第一部分?
*/??
URL?urlObj?=?new?URL(""+?getAccess_token()?+?"type="+fileType+"");??
HttpURLConnection?con?=?(HttpURLConnection)?urlObj.openConnection();??
con.setRequestMethod("POST");?//?以Post方式提交表單,默認get方式??
con.setDoInput(true);??
con.setDoOutput(true);??
con.setUseCaches(false);?//?post方式不能使用緩存??
//?設置請求頭信息??
con.setRequestProperty("Connection",?"Keep-Alive");??
con.setRequestProperty("Charset",?"UTF-8");??
//?設置邊界??
String?BOUNDARY?=?"----------"?+?System.currentTimeMillis();??
con.setRequestProperty("Content-Type",?"multipart/form-data;?boundary="+?BOUNDARY);??
//?請求正文信息??
//?第一部分:??
StringBuilder?sb?=?new?StringBuilder();??
sb.append("--");?//?必須多兩道線??
sb.append(BOUNDARY);??
sb.append("\r\n");??
sb.append("Content-Disposition:?form-data;name=\"file\";filename=\""+?file.getName()?+?"\"\r\n");??
sb.append("Content-Type:application/octet-stream\r\n\r\n");??
byte[]?head?=?sb.toString().getBytes("utf-8");??
//?獲得輸出流??
OutputStream?out?=?new?DataOutputStream(con.getOutputStream());??
//?輸出表頭??
out.write(head);??
//?文件正文部分??
//?把文件已流文件的方式?推入到url中??
DataInputStream?in?=?new?DataInputStream(new?FileInputStream(file));??
int?bytes?=?0;??
byte[]?bufferOut?=?new?byte[1024];??
while?((bytes?=?in.read(bufferOut))?!=?-1)?{??
out.write(bufferOut,?0,?bytes);??
}??
in.close();??
//?結(jié)尾部分??
byte[]?foot?=?("\r\n--"?+?BOUNDARY?+?"--\r\n").getBytes("utf-8");//?定義最后數(shù)據(jù)分隔線??
out.write(foot);??
out.flush();??
out.close();??
StringBuffer?buffer?=?new?StringBuffer();??
BufferedReader?reader?=?null;??
try?{??
//?定義BufferedReader輸入流來讀取URL的響應??
reader?=?new?BufferedReader(new?InputStreamReader(con.getInputStream()));??
String?line?=?null;??
while?((line?=?reader.readLine())?!=?null)?{??
//System.out.println(line);??
buffer.append(line);??
}??
if(result==null){??
result?=?buffer.toString();??
}??
}?catch?(IOException?e)?{??
System.out.println("發(fā)送POST請求出現(xiàn)異常!"?+?e);??
e.printStackTrace();??
throw?new?IOException("數(shù)據(jù)讀取異常");??
}?finally?{??
if(reader!=null){??
reader.close();??
}??
}??
JSONObject?jsonObj?=new?JSONObject(result);??
return?jsonObj;??
}
package com.letv.dir.cloud.util;import com.letv.dir.cloud.controller.DirectorWatermarkController;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/** * Created by xijunge on 2016/11/24 0024. */public class HttpRequesterFile { private static final Logger log = LoggerFactory.getLogger(HttpRequesterFile.class); private static final String TAG = "uploadFile"; private static final int TIME_OUT = 100 * 1000; // 超時時間 private static final String CHARSET = "utf-8"; // 設置編碼 /** * 上傳文件到服務器 * * @param file * 需要上傳的文件 * @param RequestURL * 文件服務器的rul * @return 返回響應的內(nèi)容 * */ public static String uploadFile(File file, String RequestURL) throws IOException {
String result = null;
String BOUNDARY = "letv"; // 邊界標識 隨機生成 String PREFIX = "--", LINE_END = "\r\n";
String CONTENT_TYPE = "multipart/form-data"; // 內(nèi)容類型 try {
URL url = new URL(RequestURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(TIME_OUT);
conn.setConnectTimeout(TIME_OUT);
conn.setDoInput(true); // 允許輸入流 conn.setDoOutput(true); // 允許輸出流 conn.setUseCaches(false); // 不允許使用緩存 conn.setRequestMethod("POST"); // 請求方式 conn.setRequestProperty("Charset", CHARSET); // 設置編碼 conn.setRequestProperty("connection", "keep-alive");
conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);
新聞名稱:上傳的后臺的java代碼 Java文件上傳實現(xiàn)
地址分享:http://muchs.cn/article24/docdece.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、定制網(wǎng)站、App設計、營銷型網(wǎng)站建設、網(wǎng)站設計公司、品牌網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)