Android提交表单并上传图片到web服务器,直接上代码
用到了Apache的HttpClient.jar
<span class = "pln" > </span><span class = "com" > /** * 提交表单并上传文件到网站 * @param url 提交的接口 * @param param 参数 <键,值> * @param bitmap 图片内容 */ </span><span class = "pln" > </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" > static </span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pln" > postForm</span><span class = "pun" >(</span><span class = "typ" >String</span><span class = "pln" > url</span><span class = "pun" >,</span><span class = "typ" >Map</span><span class = "pun" ><</span><span class = "typ" >String</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pun" >></span><span class = "pln" > param</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >Bitmap</span><span class = "pln" > bitmap</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > try </span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > url</span><span class = "pun" >=</span><span class = "str" > "http://localhost:4657" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "str" > "/api/SaveNeed" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "typ" >HttpPost</span><span class = "pln" > post </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >HttpPost</span><span class = "pun" >(</span><span class = "pln" >url</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >HttpClient</span><span class = "pln" > client </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >DefaultHttpClient</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pln" > BOUNDARY </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "*****" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > // 边界标识</span><span class="pln"> </span><span class = "typ" >MultipartEntity</span><span class = "pln" > entity </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >MultipartEntity</span><span class = "pun" >(</span><span class = "pln" > </span><span class = "typ" >HttpMultipartMode</span><span class = "pun" >.</span><span class = "pln" >BROWSER_COMPATIBLE</span><span class = "pun" >,</span><span class = "pln" > BOUNDARY</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "kwd" > if </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "pln" >param </span><span class = "pun" >!=</span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pln" > </span><span class = "pun" >&&</span><span class = "pln" > </span><span class = "pun" >!</span><span class = "pln" >param</span><span class = "pun" >.</span><span class = "pln" >isEmpty</span><span class = "pun" >())</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > entity</span><span class = "pun" >.</span><span class = "pln" >addPart</span><span class = "pun" >(</span><span class = "str" > "needList" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >StringBody</span><span class = "pun" >(</span><span class = "pln" > param</span><span class = "pun" >.</span><span class = "kwd" >get</span><span class = "pun" >(</span><span class = "str" > "needList" </span><span class = "pun" >),</span><span class = "pln" > </span><span class = "typ" >Charset</span><span class = "pun" >.</span><span class = "pln" >forName</span><span class = "pun" >(</span><span class = "str" > "UTF-8" </span><span class = "pun" >)));</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > saveImageFile</span><span class = "pun" >(</span><span class = "pln" >bitmap</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pln" > path </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >Environment</span><span class = "pun" >.</span><span class = "pln" >getExternalStorageDirectory</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "str" > "/temple/temp.jpg" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "typ" >File</span><span class = "pln" > file </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >File</span><span class = "pun" >(</span><span class = "pln" >path</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "com" > // 添加文件参数</span><span class="pln"> </span><span class = "kwd" > if </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "pln" >file </span><span class = "pun" >!=</span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pln" > </span><span class = "pun" >&&</span><span class = "pln" > file</span><span class = "pun" >.</span><span class = "pln" >exists</span><span class = "pun" >())</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > entity</span><span class = "pun" >.</span><span class = "pln" >addPart</span><span class = "pun" >(</span><span class = "str" > "file" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >FileBody</span><span class = "pun" >(</span><span class = "pln" >file</span><span class = "pun" >));</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > post</span><span class = "pun" >.</span><span class = "pln" >setEntity</span><span class = "pun" >(</span><span class = "pln" >entity</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >HttpResponse</span><span class = "pln" > response</span><span class = "pun" >;</span><span class = "pln" > response </span><span class = "pun" >=</span><span class = "pln" > client</span><span class = "pun" >.</span><span class = "pln" >execute</span><span class = "pun" >(</span><span class = "pln" >post</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > stateCode </span><span class = "pun" >=</span><span class = "pln" > response</span><span class = "pun" >.</span><span class = "pln" >getStatusLine</span><span class = "pun" >().</span><span class = "pln" >getStatusCode</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >StringBuffer</span><span class = "pln" > sb </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >StringBuffer</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "kwd" > if </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "pln" >stateCode </span><span class = "pun" >==</span><span class = "pln" > </span><span class = "typ" >HttpStatus</span><span class = "pun" >.</span><span class = "pln" >SC_OK</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >HttpEntity</span><span class = "pln" > result </span><span class = "pun" >=</span><span class = "pln" > response</span><span class = "pun" >.</span><span class = "pln" >getEntity</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "kwd" > if </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "pln" >result </span><span class = "pun" >!=</span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >InputStream</span><span class = "pln" > </span><span class = "kwd" >is</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > result</span><span class = "pun" >.</span><span class = "pln" >getContent</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >BufferedReader</span><span class = "pln" > br </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >BufferedReader</span><span class = "pun" >(</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >InputStreamReader</span><span class = "pun" >(</span><span class = "kwd" >is</span><span class = "pun" >));</span><span class = "pln" > </span><span class = "typ" >String</span><span class = "pln" > tempLine</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > while </span><span class = "pln" > </span><span class = "pun" >((</span><span class = "pln" >tempLine </span><span class = "pun" >=</span><span class = "pln" > br</span><span class = "pun" >.</span><span class = "pln" >readLine</span><span class = "pun" >())</span><span class = "pln" > </span><span class = "pun" >!=</span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > sb</span><span class = "pun" >.</span><span class = "pln" >append</span><span class = "pun" >(</span><span class = "pln" >tempLine</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > post</span><span class = "pun" >.</span><span class = "pln" >abort</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > sb</span><span class = "pun" >.</span><span class = "pln" >toString</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > catch </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "typ" >ClientProtocolException</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // TODO Auto-generated catch block</span><span class="pln"> e</span><span class = "pun" >.</span><span class = "pln" >printStackTrace</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > catch </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "typ" >IOException</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // TODO Auto-generated catch block</span><span class="pln"> e</span><span class = "pun" >.</span><span class = "pln" >printStackTrace</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > catch </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "typ" >Exception</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > // TODO Auto-generated catch block</span><span class="pln"> e</span><span class = "pun" >.</span><span class = "pln" >printStackTrace</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > </span><span class = "kwd" > null </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span> |