java webservice上傳下載文件代碼分享
本文實(shí)例為大家分享了java webservice上傳下載文件代碼,供大家參考,具體內(nèi)容如下
1、新建動態(tài)web工程youmeFileServer,新建包c(diǎn)om,里面新建類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ù),寫入文件輸出流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ā)布測試webservice(eclipse Java EE IDE)
右鍵剛才建立的類,現(xiàn)在webservice-->create webservice,webservice type 選擇bottom upjava bean web service,service implementation 選擇目標(biāo)類,下一步選擇要發(fā)布公開的方法接口,直到完成,tomcat已啟動,右鍵剛生成的wsdl文件夾里面的wsdl文件,選擇測試webservice,輸入對應(yīng)方法的參數(shù)即可。
以上就是本文的全部內(nèi)容,希望對大家的學(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開發(fā)環(huán)境下的大文件分片上傳的實(shí)例代碼
- JavaWeb項(xiàng)目實(shí)現(xiàn)文件上傳動態(tài)顯示進(jìn)度實(shí)例
- java web圖片上傳和文件上傳實(shí)例
- JavaWeb實(shí)現(xiàn)文件上傳下載功能實(shí)例詳解
- JavaWeb如何實(shí)現(xiàn)本地文件上傳功能
相關(guān)文章
Springboot框架實(shí)現(xiàn)自動裝配詳解
在使用springboot時(shí),很多配置我們都沒有做,都是springboot在幫我們完成,這很大一部分歸功于springboot自動裝配。本文將詳細(xì)為大家講解SpringBoot的自動裝配原理,需要的可以參考一下2022-08-08
Java設(shè)計(jì)模式七大原則之單一職責(zé)原則詳解
單一職責(zé)原則(Single Responsibility Principle, SRP),有且僅有一個(gè)原因引起類的變更。簡單來說,就是針對一個(gè)java類,它應(yīng)該只負(fù)責(zé)一項(xiàng)職責(zé)。本文將詳細(xì)介紹一下Java設(shè)計(jì)模式七大原則之一的單一職責(zé)原則,需要的可以參考一下2022-02-02
Swagger2不被SpringSecurity框架攔截的配置及說明
這篇文章主要介紹了Swagger2不被SpringSecurity框架攔截的配置及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
springboot多模塊多環(huán)境配置文件問題(動態(tài)配置生產(chǎn)和開發(fā)環(huán)境)
這篇文章主要介紹了springboot多模塊多環(huán)境配置文件問題(動態(tài)配置生產(chǎn)和開發(fā)環(huán)境),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
詳解java.lang.reflect.Modifier.isInterface()方法
這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關(guān)資料,這里提供實(shí)例幫助大家理解這個(gè)方法的使用,需要的朋友可以參考下2017-09-09

