java webservice上傳下載文件代碼分享
本文實(shí)例為大家分享了java webservice上傳下載文件代碼,供大家參考,具體內(nèi)容如下
1、新建動(dòng)態(tài)web工程youmeFileServer,新建包c(diǎn)om,里面新建類(lèi)FileProgress
package com; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Date; import java.text.SimpleDateFormat; import java.util.Random; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /* * web servcie 上傳下載文件 */ public class FileProgress { public String sayHello(String name) { return "Hello," + name+"\n"+getdir("2"); } /* * 文件上傳服務(wù) */ public String uploadFile(String fileName, String filetype, String file)//byte[] bytes) { FileOutputStream fos = null; try { String filedir = getdir(filetype); BASE64Decoder decoder= new BASE64Decoder(); byte[] bytes = decoder.decodeBuffer(file); if(filedir=="") { return ""; } Integer rdm = new Random().nextInt(10000); String savename = getDataTimeString(true) +rdm.toString()+fileName.substring(fileName.indexOf('.')); fos = new FileOutputStream(filedir+savename); // 將字節(jié)數(shù)組bytes中的數(shù)據(jù),寫(xiě)入文件輸出流fos中 fos.write(bytes); fos.flush(); return filedir +savename; } catch (Exception e) { e.printStackTrace(); return ""; } finally { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * @param filepath */ private String getdir(String filetype) { String path = "F:\\youme\\{0}\\" + getDataString() + "\\"; switch (filetype) { case "2": path = path.replace("{0}", "image"); break; case "3": path = path.replace("{0}", "vedio"); break; default: return ""; } try { java.io.File file = new java.io.File(path); if(!file.exists()) { if(!file.mkdirs()) { return ""; } } return path; } catch(Exception ex) { return ""; } finally { } } /* * 文件下載服務(wù) */ public String downloadFile(String filepath) { // filepath = "F:\\youme\\vedio\\2013-09-03\\201309031700143294.amr"; FileInputStream in = null; byte bytes[] = null; String file = null; try { in = new FileInputStream(filepath); bytes = new byte[in.available()]; // 從輸入流in中,將 bytes.length 個(gè)字節(jié)的數(shù)據(jù)讀入字節(jié)數(shù)組bytes中 in.read(bytes); BASE64Encoder encoder = new BASE64Encoder(); file = encoder.encode(bytes); } catch (Exception e) { e.printStackTrace(); return ""; } finally { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } // return bytes; return file; } /* * 獲取當(dāng)前時(shí)間 */ private static String getDataTimeString(Boolean isfilename) { try { SimpleDateFormat formatter = null; if(!isfilename) { formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } else { formatter= new SimpleDateFormat("yyyyMMddHHmmss"); } Date curDate = new Date(System.currentTimeMillis());//獲取當(dāng)前時(shí)間 return formatter.format(curDate); } catch(Exception ex) { System.out.println(ex.getMessage()); return ""; } } /* * 獲取當(dāng)前日期 */ private static String getDataString() { try { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date curDate = new Date(System.currentTimeMillis());//獲取當(dāng)前時(shí)間 return formatter.format(curDate); } catch(Exception ex) { System.out.println(ex.getMessage()); return ""; } } }
2、發(fā)布測(cè)試webservice(eclipse Java EE IDE)
右鍵剛才建立的類(lèi),現(xiàn)在webservice-->create webservice,webservice type 選擇bottom upjava bean web service,service implementation 選擇目標(biāo)類(lèi),下一步選擇要發(fā)布公開(kāi)的方法接口,直到完成,tomcat已啟動(dòng),右鍵剛生成的wsdl文件夾里面的wsdl文件,選擇測(cè)試webservice,輸入對(duì)應(yīng)方法的參數(shù)即可。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaWeb實(shí)現(xiàn)多文件上傳及zip打包下載
- java web FTPClient實(shí)現(xiàn)上傳文件到指定服務(wù)器
- Java Web使用Html5 FormData實(shí)現(xiàn)多文件上傳功能
- webuploader在springMVC+jquery+Java開(kāi)發(fā)環(huán)境下的大文件分片上傳的實(shí)例代碼
- JavaWeb項(xiàng)目實(shí)現(xiàn)文件上傳動(dòng)態(tài)顯示進(jìn)度實(shí)例
- java web圖片上傳和文件上傳實(shí)例
- JavaWeb實(shí)現(xiàn)文件上傳下載功能實(shí)例詳解
- JavaWeb如何實(shí)現(xiàn)本地文件上傳功能
相關(guān)文章
Springboot框架實(shí)現(xiàn)自動(dòng)裝配詳解
在使用springboot時(shí),很多配置我們都沒(méi)有做,都是springboot在幫我們完成,這很大一部分歸功于springboot自動(dòng)裝配。本文將詳細(xì)為大家講解SpringBoot的自動(dòng)裝配原理,需要的可以參考一下2022-08-08Java設(shè)計(jì)模式七大原則之單一職責(zé)原則詳解
單一職責(zé)原則(Single Responsibility Principle, SRP),有且僅有一個(gè)原因引起類(lèi)的變更。簡(jiǎn)單來(lái)說(shuō),就是針對(duì)一個(gè)java類(lèi),它應(yīng)該只負(fù)責(zé)一項(xiàng)職責(zé)。本文將詳細(xì)介紹一下Java設(shè)計(jì)模式七大原則之一的單一職責(zé)原則,需要的可以參考一下2022-02-02Swagger2不被SpringSecurity框架攔截的配置及說(shuō)明
這篇文章主要介紹了Swagger2不被SpringSecurity框架攔截的配置及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Java中的ClassLoader類(lèi)加載器使用詳解
這篇文章主要介紹了Java中的ClassLoader類(lèi)加載器使用詳解,ClassLoader用于將CLASS文件動(dòng)態(tài)加載到JVM中去,是所有類(lèi)加載器的基類(lèi),所有繼承自抽象的ClassLoader的加載器,都會(huì)優(yōu)先判斷是否被父類(lèi)加載器加載過(guò),防止多次加載,需要的朋友可以參考下2023-10-10springboot多模塊多環(huán)境配置文件問(wèn)題(動(dòng)態(tài)配置生產(chǎn)和開(kāi)發(fā)環(huán)境)
這篇文章主要介紹了springboot多模塊多環(huán)境配置文件問(wèn)題(動(dòng)態(tài)配置生產(chǎn)和開(kāi)發(fā)環(huán)境),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04詳解java.lang.reflect.Modifier.isInterface()方法
這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關(guān)資料,這里提供實(shí)例幫助大家理解這個(gè)方法的使用,需要的朋友可以參考下2017-09-09