上傳文件java,上傳文件找不到桌面上的文件

本文目錄一覽:

java怎麼實現上傳文件到伺服器

common-fileupload是jakarta項目組開發的一個功能很強大的上傳文件組件

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

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();

// 設置允許用戶上傳文件大小,單位:位元組,這裡設為2m

fu.setSizeMax(2*1024*1024);

// 設置最多只允許在內存中存儲的數據,單位:位元組

fu.setSizeThreshold(4096);

// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄

fu.setRepositoryPath(“c://windows//temp”);

//開始讀取上傳信息

List fileItems = fu.parseRequest(request);

// 依次處理每個上傳的文件

 Iterator iter = fileItems.iterator();

//正則匹配,過濾路徑取文件名

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

//過濾掉的文件類型

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{

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

//在下文中上傳文件至資料庫時,將對這裡改寫

         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);

}

}

}

現在介紹上傳文件到伺服器,下面只寫出相關代碼:

以sql2000為例,表結構如下:

欄位名:name    filecode

類型: varchar     image

資料庫插入代碼為:PreparedStatement pstmt=conn.prepareStatement(“insert into test values(?,?)”);

代碼如下:

。。。。。。

try{

      這段代碼如果不去掉,將一同寫入到伺服器中

      //item.write(new File(“d://” + m.group(1)));

         

      int byteread=0;

      //讀取輸入流,也就是上傳的文件內容

      InputStream inStream=item.getInputStream();            

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

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

      pstmt.executeUpdate();

      inStream.close();

out.println(name+”  “+size+” “);

      }

。。。。。。

這樣就實現了上傳文件至資料庫

java上傳文件到堅果雲

1、首先先打開電腦,點擊桌面上的java軟體。

2、其次進入之後,找到想要上傳的文件,點擊左上方的三個點,找到上傳方式。

3、最後在選擇上傳的位置堅果雲,點擊上傳即可。

java如何實現文件上傳

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 自動生成 catch 塊

e.printStackTrace();

}

return receiveLen;

}

這個方法從InputStream中讀取內容,寫到OutputStream中。

那麼發送文件方,InputStream就是FileInputStream,OutputStream就是Socket.getOutputStream.

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

就OK了。 至於存到資料庫里嘛,Oracle里用Blob。搜索一下,也是一樣的。從Blob能獲取一個輸出流。

java文件上傳到伺服器有什麼影響

java文件上傳到伺服器沒有什麼影響。存儲方式改變了以及存儲的文件夾會有改變,要注意存儲的文件夾名稱。Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,廣泛應用。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295168.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 17:15
下一篇 2024-12-26 17:15

相關推薦

發表回復

登錄後才能評論