javawebservice圖片上傳
JAVA WEB文件上傳步驟如下:
實現 Web 開發中的文件上傳功能,兩個操作:在 Web 頁面添加上傳輸入項,在 Servlet 中讀取上傳文件的數據並保存在本地硬碟中。
1、Web 端上傳文件。在 Web 頁面中添加上傳輸入項:<input type="file"> 設置文件上傳輸入項時應注意:(1) 必須設置 input 輸入項的 name 屬性,否則瀏覽器將不會發送上傳文件的數據。(2) 必須把 form 的 enctype 屬性設為 multipart/form-data,設置該值後,瀏覽器在上傳文件時,將把文件數據附帶在 http 請求消息體中,並使用 MIME 協議對上傳文件進行描述,以方便接收方對上傳數據進行解析和處理。(3) 表單提交的方式要是 post
2、伺服器端獲取文件。如果提交表單的類型為 multipart/form-data 時,就不能採用傳統方式獲取數據。因為當表單類型為 multipart/form-data 時,瀏覽器會將數據以 MIME 協議的形式進行描述。如果想在伺服器端獲取數據,那麼我們必須採用獲取請求消息輸入流的方式來獲取數據。
3、Apache-Commons-fileupload。為了方便用戶處理上傳數據,Apache 提供了一個用來處理表單文件上傳的開源組建。使用 Commons-fileupload 需要 Commons-io 包的支持。
4、fileuplpad 組建工作流程
(1)客戶端將數據封裝在 request 對象中。
(2)伺服器端獲取到 request 對象。
(3)創建解析器工廠 DiskFileItemFactory 。
(4)創建解析器,將解析器工廠放入解析器構造函數中。之後解析器會對 request 進行解析。
(5)解析器會將每個表單項封裝為各自對應的 FileItem。
(6)判斷代表每個表單項的 FileItem 是否為普通表單項 isFormField,返回 true 為普通表單項。
(7)如果是普通表單項,通過 getFieldName 獲取表單項名,getString 獲得表單項值。
(8)如果 isFormField 返回 false 那麼是用戶要上傳的數據,可以通過 getInputStream 獲取上傳文件的數據。通過getName 可以獲取上傳的文件名。
㈡ java用webservice實現文件的上傳下載,上傳和下載在客戶端進行,伺服器端拋出服務......謝謝,最好給個列
客戶端服務建立連接後 打開IO即可
㈢ java請求C++的webService上傳圖片
請求支援八菱科技出來了考慮好了(●°u°●) 」
㈣ java web開發,上傳圖片並讀取
java web開發中,使用文件操作類來上傳圖片並讀取,如下代碼:
*@desc:圖片處理工具
*@author:bingye
*@createTime:2015-3-17下午04:25:32
*@version:v1.0
*/
publicclassImageUtil{
/**
*將圖片寫到客戶端
*@author:bingye
*@createTime:2015-3-17下午04:36:04
*@history:
*@paramimage
*@paramresponsevoid
*/
publicstaticvoidwriteImage(byte[]image,HttpServletResponseresponse){
if(image==null){
return;
}
byte[]buffer=newbyte[1024];
InputStreamis=null;
OutputStreamos=null;
try{
is=newByteArrayInputStream(image);
os=response.getOutputStream();
while(is.read(buffer)!=-1){
os.write(buffer);
os.flush();
}
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(is!=null){is.close();}
if(os!=null){os.close();}
}catch(IOExceptione){
e.printStackTrace();
}
}
}
/**
*獲取指定路勁圖片
*@author:bingye
*@createTime:2015-3-21上午10:50:44
*@paramfilePath
*@paramresponsevoid
*/
publicstaticvoidwriteImage(StringfilePath,HttpServletResponseresponse){
FileimageFile=newFile(filePath);
if(imageFile!=null&&imageFile.exists()){
byte[]buffer=newbyte[1024];
InputStreamis=null;
OutputStreamos=null;
try{
is=newFileInputStream(imageFile);
os=response.getOutputStream();
while(is.read(buffer)!=-1){
os.write(buffer);
os.flush();
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(is!=null){is.close();}
if(os!=null){os.close();}
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
/**
*圖片上傳到文件夾
*@author:bingye
*@createTime:2015-3-20下午08:07:25
*@paramfile
*@paramsavePath
*@returnboolean
*/
(CommonsMultipartFilefile,StringsavePath){
if(file!=null&&!file.isEmpty()){
//獲取文件名稱
StringfileName=file.getOriginalFilename();
//獲取後綴名
StringsuffixName=fileName.substring(fileName.indexOf(".")+1);
//新名稱
StringnewFileName=System.currentTimeMillis()+"."+suffixName;
//新文件路勁
StringfilePath=savePath+newFileName;
//獲取存儲文件路徑
FilefileDir=newFile(savePath);
if(!fileDir.exists()){
//如果文件夾沒有:新建
fileDir.mkdirs();
}
FileOutputStreamfos=null;
try{
fos=newFileOutputStream(filePath);
fos.write(file.getBytes());
fos.flush();
returnResultUtil.success("UPLOAD_SUCCESS",URLEncoder.encode(newFileName,"utf-8"));
}catch(Exceptione){
e.printStackTrace();
returnResultUtil.fail("UPLOAD_ERROR");
}finally{
try{
if(fos!=null){
fos.close();
}
}catch(IOExceptione){
e.printStackTrace();
returnResultUtil.fail("UPLOAD_ERROR");
}
}
}
returnResultUtil.fail("UPLOAD_ERROR");
}}
㈤ IOS+WebService(CXF)如何實現圖片傳輸
詳細說明:1.WebService是用CXF搭建Java語言,使用SOAP方式,CXF為最新的版本(2.7.1)2.IOS調用WebService是成功的(調用Helloworld介面)3.現在希望實現從IOS端上傳圖片到WebService端,但是遇到了問題問題:介面設計為 @MethodString insertImage(@WebParam(name="image")byte[] image);IOS端調用(代碼比較多寫偽代碼吧)NSData * data (存放圖片數據)NSString * SOAP (SOAP格式以及內容)SOAP中的參數為Data但是最後結果是:我在攔截器那裡看到client端發送過來的SOAP,參數可以看到<89504e47 XXXXXX 6082>中間XXXX為省略內容,但是伺服器端報錯為:Interceptor for { http://impl.ws.test.com/}HelloWorldImplService#{ http://ws.test.com/}insertCard2 has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Unmarshalling Error: 意外的元素 (uri:"", local:"image")希望大家幫幫忙!!謝謝
㈥ java webservice上傳大文件,該怎麼處理
您好,我來為您解答:
這個要藉助於第三方控制項來實現超大文件的上傳。普通的方式肯定不行。
希望我的回答對你有幫助。
㈦ 求教java webservice 上傳圖片位元組流問題。
base64是把二進制轉為字元串用的。
圖片是二進制流,轉為字元串沒有任何意義,應該和base64無關。
上傳失敗抱的錯誤信息是什麼,沒有錯誤信息無從分析。
㈧ 利用webservice怎麼上傳文件
1. Web Service 簡介
Web Service是一個平台獨立的,低耦合的,自包含的、基於可編程的web的應用程序,可使用開放的XML(標准通用標記語言下的一個子集)標准來描述、發布、發現、協調和配置這些應用程序,用於開發分布式的互操作的應用程序。
Web Service技術, 能使得運行在不同機器上的不同應用無須藉助附加的、專門的第三方軟體或硬體, 就可相互交換數據或集成。依據Web Service規范實施的應用之間, 無論它們所使用的語言、 平台或內部協議是什麼, 都可以相互交換數據。Web Service是自描述、 自包含的可用網路模塊, 可以執行具體的業務功能。Web Service也很容易部署, 因為它們基於一些常規的產業標准以及已有的一些技術,諸如標准通用標記語言下的子集XML、HTTP。Web Service減少了應用介面的花費。Web Service為整個企業甚至多個組織之間的業務流程的集成提供了一個通用機制。
(Web Service 在此不做過多介紹,具體介紹可網路下)
2. WEB Service 開發
2.1. 服務配置
Asp.Net 一般支持上傳4MB大小文件,為實現上傳超過4MB大小文件,Asp.Net項目需要調整配置(Web.Config)的httpRuntime節點。
<httpRuntime maxRequestLength="40960" executionTimeout="1800" />
maxRequestLength:指定輸入流緩沖閾值限制(以 KB 為單位)。此限制可用於防止拒絕服務攻擊;例如,因用戶向伺服器發送大型文件而導致的拒絕服務攻擊。
默認值為 4096 (4 MB)。
executionTimeout: 指定在被 ASP.NET 自動關閉前,允許執行請求的最大秒數。默認值110秒。
2.2. 服務開發
本人採用接收位元組的方式開發Web Service,提供是創建還是累加參數,根據參數將文件位元組寫入文件中。示例代碼如下:
3. WinForm 程序開發
WinForm是·Net開發平台中對Windows Form的一種稱謂。新增WinForm程序項目,添加文件上傳服務引用。
3.1. Winform 程序實現效果
程序界面簡單設計為:選擇文件按鈕,選擇文件列表,上傳文件按鈕、上傳信息及上傳進度。
㈨ 各位大蝦,小弟現在需要作一個java的webservice介面文件上傳,不知如何實現客戶端也是java的應用。
傳文件比較麻煩,去XFire官方網站上看一下吧。
㈩ java 用webservice實現文件傳輸。
按byte[]傳,和一般方法一樣傳遞