真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java上傳文件代碼實(shí)現(xiàn) JAVA 文件上傳

java 文件上傳的代碼,盡量詳細(xì)一點(diǎn)。。。

// 這是我寫(xiě)的一個(gè)方法,里面只需要傳兩個(gè)參數(shù)就OK了,在任何地方調(diào)用此方法都可以文件上傳

成都創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有十年的成都網(wǎng)站開(kāi)發(fā)建設(shè)經(jīng)驗(yàn),數(shù)千家客戶的共同信賴。提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站開(kāi)發(fā)、網(wǎng)站定制、買(mǎi)鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)

/**

* 上傳文件

* @param file待上傳的文件

* @param storePath待存儲(chǔ)的路徑(該路徑還包括文件名)

*/

public void uploadFormFile(FormFile file,String storePath)throws Exception{

// 開(kāi)始上傳

InputStream is =null;

OutputStream os =null;

try {

is = file.getInputStream();

os = new FileOutputStream(storePath);

int bytes = 0;

byte[] buffer = new byte[8192];

while ((bytes = is.read(buffer, 0, 8192)) != -1) {

os.write(buffer, 0, bytes);

}

os.close();

is.close();

} catch (Exception e) {

throw e;

}

finally{

if(os!=null){

try{

os.close();

os=null;

}catch(Exception e1){

;

}

}

if(is!=null){

try{

is.close();

is=null;

}catch(Exception e1){

;

}

}

}

}

java如何實(shí)現(xiàn)文件上傳

public static int transFile(InputStream in, OutputStream out, int fileSize) {

int receiveLen = 0;

final int bufSize = 1000;

try {

byte[] buf = new byte[bufSize];

int len = 0;

while(fileSize - receiveLen bufSize)

{

len = in.read(buf);

out.write(buf, 0, len);

out.flush();

receiveLen += len;

System.out.println(len);

}

while(receiveLen fileSize)

{

len = in.read(buf, 0, fileSize - receiveLen);

System.out.println(len);

out.write(buf, 0, len);

receiveLen += len;

out.flush();

}

} catch (IOException e) {

// TODO 自動(dòng)生成 catch 塊

e.printStackTrace();

}

return receiveLen;

}

這個(gè)方法從InputStream中讀取內(nèi)容,寫(xiě)到OutputStream中。

那么發(fā)送文件方,InputStream就是FileInputStream,OutputStream就是Socket.getOutputStream.

接受文件方,InputStream就是Socket.getInputStream,OutputStream就是FileOutputStream。

就OK了。 至于存到數(shù)據(jù)庫(kù)里嘛,Oracle里用Blob。搜索一下,也是一樣的。從Blob能獲取一個(gè)輸出流。

java中怎么把文件上傳到服務(wù)器的指定路徑?

文件從本地到服務(wù)器的功能,其實(shí)是為了解決目前瀏覽器不支持獲取本地文件全路徑。不得已而想到上傳到服務(wù)器的固定目錄,從而方便項(xiàng)目獲取文件,進(jìn)而使程序支持EXCEL批量導(dǎo)入數(shù)據(jù)。

java中文件上傳到服務(wù)器的指定路徑的代碼:

在前臺(tái)界面中輸入:

form method="post" enctype="multipart/form-data" ?action="../manage/excelImport.do"

請(qǐng)選文件:input type="file" ?name="excelFile"

input type="submit" value="導(dǎo)入" onclick="return impExcel();"/

/form

action中獲取前臺(tái)傳來(lái)數(shù)據(jù)并保存

/**

* excel 導(dǎo)入文件

* @return

* @throws IOException

*/

@RequestMapping("/usermanager/excelImport.do")

public String excelImport(

String filePath,

MultipartFile ?excelFile,HttpServletRequest request) throws IOException{

log.info("action:{} Method:{} start","usermanager","excelImport" );

if (excelFile != null){

String filename=excelFile.getOriginalFilename();

String a=request.getRealPath("u/cms/www/201509");

SaveFileFromInputStream(excelFile.getInputStream(),request.getRealPath("u/cms/www/201509"),filename);//保存到服務(wù)器的路徑

}

log.info("action:{} Method:{} end","usermanager","excelImport" );

return "";

}

/**

* 將MultipartFile轉(zhuǎn)化為file并保存到服務(wù)器上的某地

*/

public void SaveFileFromInputStream(InputStream stream,String path,String savefile) throws IOException

{ ? ?

FileOutputStream fs=new FileOutputStream( path + "/"+ savefile);

System.out.println("------------"+path + "/"+ savefile);

byte[] buffer =new byte[1024*1024];

int bytesum = 0;

int byteread = 0;

while ((byteread=stream.read(buffer))!=-1)

{

bytesum+=byteread;

fs.write(buffer,0,byteread);

fs.flush();

}

fs.close();

stream.close();

}

java中怎樣上傳文件

Java代碼實(shí)現(xiàn)文件上傳

FormFile?file=manform.getFile();?

String?newfileName?=?null;

String?newpathname=null;

String?fileAddre="/numUp";

try?{

InputStream?stream?=?file.getInputStream();//?把文件讀入

String?filePath?=?request.getRealPath(fileAddre);//取系統(tǒng)當(dāng)前路徑

File?file1?=?new?File(filePath);//添加了自動(dòng)創(chuàng)建目錄的功能

((File)?file1).mkdir();???

newfileName?=?System.currentTimeMillis()

+?file.getFileName().substring(

file.getFileName().lastIndexOf('.'));

ByteArrayOutputStream?baos?=?new?ByteArrayOutputStream();

OutputStream?bos?=?new?FileOutputStream(filePath?+?"/"

+?newfileName);

newpathname=filePath+"/"+newfileName;

System.out.println(newpathname);

//?建立一個(gè)上傳文件的輸出流

System.out.println(filePath+"/"+file.getFileName());

int?bytesRead?=?0;

byte[]?buffer?=?new?byte[8192];

while?((bytesRead?=?stream.read(buffer,?0,?8192))?!=?-1)?{

bos.write(buffer,?0,?bytesRead);//?將文件寫(xiě)入服務(wù)器

}

bos.close();

stream.close();

}?catch?(FileNotFoundException?e)?{

e.printStackTrace();

}?catch?(IOException?e)?{

e.printStackTrace();

}

java怎么實(shí)現(xiàn)上傳文件到服務(wù)器

common-fileupload是jakarta項(xiàng)目組開(kāi)發(fā)的一個(gè)功能很強(qiáng)大的上傳文件組件

下面先介紹上傳文件到服務(wù)器(多文件上傳):

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import java.util.regex.*;

import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=GB2312";

//Process the HTTP Post request

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType(CONTENT_TYPE);

PrintWriter out=response.getWriter();

try {

DiskFileUpload fu = new DiskFileUpload();

// 設(shè)置允許用戶上傳文件大小,單位:字節(jié),這里設(shè)為2m

fu.setSizeMax(2*1024*1024);

// 設(shè)置最多只允許在內(nèi)存中存儲(chǔ)的數(shù)據(jù),單位:字節(jié)

fu.setSizeThreshold(4096);

// 設(shè)置一旦文件大小超過(guò)getSizeThreshold()的值時(shí)數(shù)據(jù)存放在硬盤(pán)的目錄

fu.setRepositoryPath("c://windows//temp");

//開(kāi)始讀取上傳信息

List fileItems = fu.parseRequest(request);

// 依次處理每個(gè)上傳的文件

Iterator iter = fileItems.iterator();

//正則匹配,過(guò)濾路徑取文件名

String regExp=".+////(.+)$";

//過(guò)濾掉的文件類(lèi)型

String[] errorType={".exe",".com",".cgi",".asp"};

Pattern p = Pattern.compile(regExp);

while (iter.hasNext()) {

?FileItem item = (FileItem)iter.next();

?//忽略其他不是文件域的所有表單信息

?if (!item.isFormField()) {

? ? ?String name = item.getName();

? ? ?long size = item.getSize();

? ? ?if((name==null||name.equals("")) size==0)

? ? ? ? ?continue;

?Matcher m = p.matcher(name);

?boolean result = m.find();

?if (result){

? ? ?for (int temp=0;tempERRORTYPE.LENGTH;TEMP++){

? ? ?if (m.group(1).endsWith(errorType[temp])){

? ? ? ? ? ?throw new IOException(name+": wrong type");

? ? ?}

? ? ?}

? ? ?try{

//保存上傳的文件到指定的目錄

//在下文中上傳文件至數(shù)據(jù)庫(kù)時(shí),將對(duì)這里改寫(xiě)

? ? ?item.write(new File("d://" + m.group(1)));

out.print(name+" ?"+size+"");

? ? ?}

? ? ?catch(Exception e){

? ? ? ?out.println(e);

? ? ?}

}

?else

?{

? ?throw new IOException("fail to upload");

?}

?}

}

}

catch (IOException e){

out.println(e);

}

catch (FileUploadException e){

out.println(e);

}

}

}

現(xiàn)在介紹上傳文件到服務(wù)器,下面只寫(xiě)出相關(guān)代碼:

以sql2000為例,表結(jié)構(gòu)如下:

字段名:name ? ?filecode

類(lèi)型: varchar ? ? image

數(shù)據(jù)庫(kù)插入代碼為:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");

代碼如下:

。。。。。。

try{

? 這段代碼如果不去掉,將一同寫(xiě)入到服務(wù)器中

? //item.write(new File("d://" + m.group(1)));

? ? ?

? int byteread=0;

? //讀取輸入流,也就是上傳的文件內(nèi)容

? InputStream inStream=item.getInputStream(); ? ? ? ? ? ?

pstmt.setString(1,m.group(1));

? pstmt.setBinaryStream(2,inStream,(int)size);

? pstmt.executeUpdate();

? inStream.close();

out.println(name+" ?"+size+" ");

? }

。。。。。。

這樣就實(shí)現(xiàn)了上傳文件至數(shù)據(jù)庫(kù)


文章標(biāo)題:java上傳文件代碼實(shí)現(xiàn) JAVA 文件上傳
本文來(lái)源:http://weahome.cn/article/hjgcdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部