天天看点

表单 multipart/form-data 如何提交中文乱码表单 multipart/form-data 如何提交中文乱码

琛ㄥ?? multipart/form-data 濡?浣???浜や腑??涔辩??

瑙e?虫?规?锛?

multipart/form-data ???ㄦ?ヤ?浼???浠舵?剁??涓?涓?绫诲??

濡????ㄨ?涓???璇?锛???涓?涓?涓??ㄧ??涔辩??瑙e?崇????**.getString(??????妗?name??,??GB18030??);

?e氨涓?瀛??ㄤ贡??浜?

璨?浼肩?板?ㄦ??涓???????锛?涓???涔辩??锛?妤间富??绱????

???锛?浣???涔辩??涔?娌℃??璇存?妤???

浣???浠ヤ慨??spsmartupload锛?璁╂?????版?圭??缂????界?涓?涓?TF-8

?抽??瀛?锛?smartupload锛?uploadbean锛?linux锛?涓???涔辩??

涓???SmartUpload涓?浼???浠朵贡??瑙e?崇邯瀹?

?跺????帮?浜???

瀹???绋?搴??80锛?锛???浠跺????棰???瑙e?筹?

??棰???杩帮???indows涓?寮?????web搴?????ㄥ?颁?smartupload涓?浼???浠讹???姹?寰?绠???锛?灏辨??涓?涓?琛ㄥ????浠?ormdata.jsp锛?涓?涓??峰??琛ㄥ??骞朵?浼?????浠?etdata.jsp锛?璋?璇????跺??锛?windows??linux绯荤?涓???姝e父锛?褰?绯荤?瀹?瑁??板????版???″?ㄧ???跺??锛??村?虹?颁??峰??琛ㄥ?????板?间负涔辩??锛??ㄦ?????凤?锛?锛?锛?????棰???

????瀛????㈢??涓???瑙???锛?涓ゅ?版?哄???????浜?璇存????涓?寮?????瀹?瑁???Linux锛?浣????筹??规???昏??ㄦ??锛???瀹???杩?liux瑁?寰?涓?涓??凤????????稿?崇?????′?涓??枫????????涔????藉????惰??锛?涓?澶翠换?′氦缁????ヨВ?充?锛???涓?绯荤?椹?涓?瑕?姝e?浣跨???濡?????瑕?姹????板??瑁?Linux锛???涔???涓????界?????eソ锛???涓??ュ?扮?憋?璋??ュ?扮?憋???灏遍??瀹?涓?????

?跺???ㄨ?涓??跺??锛???杩?璁や负??棰?涓?澶х??????涓?ava寮?????涓?瑗匡?涔辩????棰???瀹跺父渚块キ锛???瑙e?冲??娉?涔?灏辨???e??绉???涓?灏变?涓?杞?????锛?褰??跺ご?块??????棰?澶т?澶э???璇达?搴?璇ユ病?ュぇ??棰???

??寮?濮?杩?琛?getByte()杞???锛???SO-8859-1 涓?gb312/GBK??浜??歌浆???????锛???????TF-8锛?涓?琛?锛?

????lt;%@ page contentType=??text/html;charset=gb2312??>杩?琛?缂????挎???涓?琛?锛?

淇???inux LANG=zh_CN.GB2312锛?涓?琛?锛?

淇???eb.xml??charset锛?涓?琛?锛? 姝ゆ?舵????涔?宸茬??ラ??浜????????崇??缃?椤碉???涓??惧?拌???棰???smartupload???炽??浣?瑙e?崇??浜哄?ュ?ユ????锛???涓?瑙e?崇????娉?涔?寰?涓?璇??锛?浜?????sdn涓???甯?锛?缁?????澶╂病浜虹??浼?锛?椤堕?芥病浜洪《????涓?寮???缇や???锛?澶у?堕?藉?锛?涔?????椤惧????缁х画??宸辫?璇?锛???ystem.getProperty(??file.encoding??)寰??扮??缁?????ANSI_X3.4-1968锛?杩???涓?浠?涔???锛?涓?google?ヤ?涓?涓?锛??ㄦ??浜????ㄤ俊??锛?姝ゆ?舵??蹇???涓?绂???浜?????ND锛???棰???浜?涓ラ??????

褰?澶╁?颁???锛?????娌″?ョ???锛?宸茬?澶存??????锛?涓??冲????浜?锛?浣??卞ぇ??澶╂?堕?磋?娌℃??瀹?杩?涔?涓?涓???灏???棰???锛?瀹??ㄦ????浜?娌¢?㈠??锛?浜???????澶村?夸?璇?锛???澶╂??涓?瀹?瑙e?炽??

???板???锛??朵???楗?涓?棣???涓?QQ????锛?璺?涓?MM??浜????ワ???璇翠?澶╁ソ绱?锛?濂硅?存????澶╁??浠ュソ濂戒???涓?涓?????锛???澶╂??????锛???涓??稿??锛???锛???澶╁?ㄥ????锛????ヨ??澶╂敞瀹?瑕????ㄦ??????浜???

??涓?娌$?″ソ锛?璧锋?ュ????涓?椤挎?ワ?杩???娌″?ュソ??娉???

绗?浜?澶╋?11?规??璧峰?锛?璧锋?ョ??纰??㈡?″氨寮?濮?骞诧????d?缂?????ew String(str.getByte(??iso-8859-1??),??gbk??)杩??风??褰㈠?杩?琛?浜??ュ共涓?缁???锛?涓?琛?锛???涔???锛????版??涓?涓???martupload婧?????瑙e?冲??娉?锛?????寰?涓??虫?规?????锛???涓烘???″?ㄥ?ㄨ?绋?锛???娌℃??root甯??凤?淇??逛?绫绘??娉???????

杩?灞?涓?锛???formdata.jsp涓?<%@ page contentType=??text/html;charset=gb2312??>锛?????锛???涓?锛??峰??椤甸?㈣浆?????藉?姝e父?剧ず涓?????浣???锛?澶у?堕?界?ラ??锛?杩??峰??????????浠?涔?锛?formdta.jsp??娉??剧ず涓???锛?杩?涓???棰??撮?惧??浜?锛???涓???esponse.setContentType灞??跺?归〉?㈡病??浠讳?浣?????????ㄤ???

?堕?翠??圭?硅??伙???缁?浜??ㄦ??浜?锛???寮?濮?璇????昏?板?root??瀵???锛?璇?浜?涓?涓?锛?????灞??舵??瀵圭????OK锛?缁?浜???浠ュぇ灞??宠??浜???

?惰??锛?smartupload??婧???锛?灞??跺?涓?濂芥?撅???浜???澶╂病??????濂藉??缂?璇?浜?????el??缂?璇??烘?ョ??缁???璺???浜鸿?寸??杩?涓?涓??凤?灏卞???????逛?涓?涓?锛?

?惧??martUpload.java涓??? public void upload()锛???涓?涓?????tring charsetName锛?

?惧?拌???String s11 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1);

淇??逛负String s11 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1,charsetName);

缂?璇???涓?浼?锛???????璇?锛????版??浜?涓??硅?灞???

杩?灞?浜?锛??ㄥ?????拌?藉?姝g‘璇诲??浜?锛?

杩?????琛ㄥ??????妗?浼??煎??浠ヤ?锛?????浠跺??渚??舵??涔辩??锛????????句???澶╋?瀹??ㄤ??冲???诲??d釜smartupload??婧???浜?锛??界?朵唬??涓?澶?锛?浣?????杩?涔?寮?涔?澶??辨?堕?翠???锛?娉????瑙?寰??规???搴?璇ュ??浠ヨВ?抽??棰?锛?????娌℃???瑰??锛???浠跺???i?ㄥ????瑕?杩?琛?澶????????磋叮????浠ヨ??璇?锛? 杩??惰???舵?冲?颁??㈠?朵???涓?浼???锛???浜?涓?涓?锛???浜鸿??avazoom??涓???锛???涓?涓?涓??ュ??璇达?demo寰?绠???锛?

娴?璇?涔??????帮???瑕??ㄦ?ユ?堕〉??etdata.jsp涓?杞???灏卞??浠ヤ???杞????瑰?锛???浠ユ??涓?涓?涓????板????杞?锛?涔???浠ョ?ㄤ??ヨ??灏卞??浠ワ?request.setCharacterEncoding(??GBK??);???惰?????

MultipartFormDataRequest(request,null,100*1024*1024,MultipartFormDataRequest.COSPARSER,??GBK??);

杩?涓?uploadbean????????甯镐?璐达?灞??舵??渚?涓?涓?ChineseUpload.jsp渚?瀛?锛??跺??涓昏?灏辨??涓???袱?ヨ??涓?????

绛???淇??瑰??锛???瑙?宸?涓?澶????跺??锛?宸茬???娣卞?2?广???虫?炬?句?锛????″??璇淬??

?ㄦ?ワ?缁х画宸ヤ?锛????颁?涓??伴??棰?锛?uploadbean灞??朵??戒慨?逛?浼?????浠跺??锛?杩???涔?琛????????涓?绉??????规?锛?姣?涓???浠跺缓绔?涓?涓???褰?锛??跺???捐??婚?叉?㈤????锛?浣?杩????规?跺?锛???涓??存?ヨ??荤????浠跺??杩???涔辩??锛?杩??????村??锛?锛?锛?

杩?濂斤?????娆″???颁?UploadBean??浼?瓒??э????惧?颁?涓?涓?甯?瀛?锛?璇?ploadBean1.5????Filemover??浠ユ?瑰??锛?浜?????涓?浜?1.5??FileMover锛?FileMover涓???渚?瀛?涔?寰?璇??绠?????????璐村?

淇??癸?涓?浼?????锛?涓???OK!

???ワ??????扮郴缁?????涓??稿??UG锛?涓?榧?浣?姘?锛??ㄩ?ㄨВ?炽?? 杩?涓???灏???棰???锛?灞??惰?变????存?翠袱澶╃???堕?达???璋?浠ゆ???兼??锛????讹?涔??冲?拌??????风????????寮?浠?锛????藉??杞讳?涓?浣?浠??????????杩?涓ゅぉ灏辨病?藉共锛????板?ㄧ???e?锋??锛????惧?SmartUpload锛??ㄩ??娇??ploadBean??????杩???浜?涓?涓?Demo锛?浠ュ府?╃????????寮?浠?蹇???瑙e?抽??棰???

涓??????????????Demo????瑕???璧????炬?ラ?借创?ㄨ???锛?澶у?舵??浠?涔???棰???浠ュ?ㄨ???璺???浜ゆ??? 浜???UploadBean涓?浼?瑙e?虫?规?

婊℃?????帮?浜???

瀹???绋?搴??100锛?

Demo锛?

1.琛ㄥ??椤甸??ssformdata.jsp

<%@ page contentType="text/html;charset=gb2312" %> 
<head> 
<title>fbysss UploadBean 绀轰?</title> 
<!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"--> 
<!--meta http-equiv="Content-Type" content="text/html; charset=gb2312"--> 
</head> 
<FORM name="form1" METHOD="POST" ACTION="sssupload.jsp" ENCTYPE="multipart/form-data"> 
<input name="title" type= "text" value="涓???瀛?"> 
<td class="bodystyle">??浠?lt;/td> 
<td class="bodystyle"> <input name="attach" type="FILE" id="attach" size="50" > </td> 
<input name="ok" type= "submit" value="??浜?> 
</form> 
           

2.璇诲??琛ㄥ??椤甸??ssgetdata.jsp

??浠讹?UploadBean涓?浼?瀹?渚?

???斤?瑙e?充腑??涔辩??锛?瀹?????浠朵?浼?锛?骞舵??渚?涓?浼??瑰??瑙e?虫?规?

浣???锛?fbysss

msn:[email?protected]

<%@ page contentType="text/html;charset=GBK" %> 
<%@ page language="java" import="com.jspsmart.upload.*"%> 
<%@ page import="java.text.SimpleDateFormat"%> 
<%@ page import="java.io.File"%> 
<%@ page import="java.util.*"%> 
<%@ page import="javazoom.upload.*"%> 
<%@ page import="uploadutilities.FileMover"%> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 
<% 
request.setCharacterEncoding("GBK");//璁剧疆缂????煎?锛?灏变??ㄤ?涓?涓?杞???浜??? 
FileMover fileMover = new FileMover();//浣?涔???浠ヤ娇?ㄨ??甯???瀹?渚?涓?jsp:useBean??褰㈠??? 
UploadBean upBean = new UploadBean(); 
MultipartFormDataRequest mrequest = null; 
Hashtable files = null; if (MultipartFormDataRequest.isMultipartFormData(request)) 
{ mrequest = new MultipartFormDataRequest(request,null,**,MultipartFormDataRequest.COSPARSER,"GBK");//娉ㄦ??杩???涔?瑕?璁剧疆缂???????
String sTt0 = mrequest.getParameter("title"); 
out.println("<br>Title0??锛?"+sTt0+"<br>"); 
String sTt1 = new String(sTt0.getBytes("ISO-8859-1"),"GBK"); 
out.println("<br>Title1??锛?"+sTt1+"<br>"); 
//杩????ㄦ?ユ?璇?title???版?????g‘??璋?璇????跺??锛???涓???f (true)return;?冲???? 
files = mrequest.getFiles(); 
} 
//?峰??淇??瑰??????浠跺?? 
String sOldFileName =mrequest.getParameter("oldfilename"); 
out.println("sOldFileName:"+sOldFileName); 
String sWebRootPath = request.getRealPath("/");//寰??颁???web搴??ㄧ???广?? 
String sPath=sWebRootPath+"attach"; 
int iFileCount = ; 
String sServerFileName=""; 
String sLocalFileName = ""; 
//??浠惰?峰?? 
if ( (files != null) || (!files.isEmpty()) ) { iFileCount = files.size(); 
UploadFile file = (UploadFile) files.get("attach"); 
sLocalFileName=file.getFileName(); 
out.println("sLocalFileName:"+sLocalFileName); 
int ii= sLocalFileName.indexOf("."); //????浠跺??????缂? 
String sExt = sLocalFileName.substring(ii,sLocalFileName.length()); 
//寰??颁???澶?????浠跺?? 
java.util.Date dt = new java.util.Date(System.currentTimeMillis()); 
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS"); 
sServerFileName= fmt.format(dt); 
sServerFileName =sServerFileName + sExt; 
//濡???涓?瀛??ㄨ?ョ??褰?锛????板缓涓?涓? 
File dir =new File(sPath); 
if (!dir.exists()){ 
dir.mkdirs(); 
} 
upBean.setFolderstore(sPath);//璁剧疆瑕?涓?浼?????褰? 
upBean.addUploadListener(fileMover);//澧???filMover???? 
fileMover.setNewfilename(sServerFileName);//璁剧疆???″?ㄤ?????浠跺?? 
upBean.store(mrequest, "attach");//涓?浼? 
out.println("file path is "+sPath+"/"+sServerFileName); 
} %>
           

Demo娉ㄦ??浜?椤癸?cos.jar锛?uploadbean.jar锛?filemover.jar杩???涓???蹇?椤绘????

蹇?澶?涓?杞藉?板??锛?

UploadBean1.5锛?http://wcarchive.cdrom.com/pub/simtelnet/winnt/java/uploadbean1_5.zip

FileMover1.3锛?http://www.javazoom.net/jzservlets/uploadbean/addons/filemover1.3.zip

????涓?杞藉?板??锛?

ChinesUpload渚?瀛?锛?http://www.javazoom.net/jzservlets/uploadbean/addons/ChineseUpload.zip

new String(s.getBytes(??ISO-8859-1??),??utf-8??);

[?????板??] (http://www.debugease.com/javaweb/647851.html)