當前位置:首頁 » 文件管理 » 文件的上傳和下載

文件的上傳和下載

發布時間: 2022-02-15 15:33:14

java如何實現文件上傳和下載的功能

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.*;
import net.sf.json.JSONObject;
import action.StudentAction;
public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean result=true;
SmartUpload mySmartUpload=new SmartUpload();
mySmartUpload.initialize(this.getServletConfig(), request,response);
mySmartUpload.setTotalMaxFileSize(50*1024*1024);//大小限制
mySmartUpload.setAllowedFilesList("doc,docx");//後綴名限制
try {
mySmartUpload.upload();
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
myFile.saveAs("/file/"+1+".doc");//保存目錄
} catch (SmartUploadException e) {
e.printStackTrace();result=false;
}
//*****************************//
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
}
}

//我這是ajax方式的,不想這樣,把//**********************//以下部分修改就行了
//需要SmartUpload組件,去網上下個就行了,也有介紹的

❷ 上傳和下載是什麼意思怎樣上傳和下載文件

上傳就是把本地的文件放到網路伺服器上
下載相反,是把網路伺服器上的文件復制回來
下載文件需要別人提供存放在網路伺服器上的文件才行
下載還分伺服器類和P2P類,如BT就算是P2P的,他下載的文件不在伺服器上,而是在別的網路用戶機子上
上傳則需要網路空間,用WEB或ftp的方式將文件從本地傳到網路空間上

❸ 用java實現文件的上傳與下載

1.下載簡單,無非是把伺服器上的文件或者資料庫中的BLob(或其他二進制型),用流讀出來,然後寫到客戶端即可,要注意 ContentType。

2.上傳,可以用Apache Commons Upload等開源工具,或者自己寫:
form要用enctype="multipart/form-data"
然後伺服器端也是用IO把客戶端提交的文件流讀入,然後寫到伺服器的文件系統或者資料庫里。不同的資料庫對Lob欄位操作可能有所不同,建議用Hibernate,JPA等成熟的ORM框架,可以不考慮資料庫細節。

❹ 文件上傳和下載有什麼關系

上傳就是將文件及圖片等傳到網上,可發布.
而下載相反,將上述內容"拿到"你的電腦中.

❺ 上傳和下載文件的原理

《文件上傳原理:Web上傳文件的原理及實現》
下載了慢慢看吧:
www.crazycoder.cn/mypdf/1487.pdf

下載:掌握ftp傳輸協議就可以了。
HTTP:
GET ***
Content range: xxx-xxx
...
check for return code 200, 220, 3xx, 4xx, 5xx
FTP:
USER
PASS
SIZE
PORT
REST
RETR
QUIT
check for return codes of each command
多開幾條連接,必要時還可以適當提高下載線程的優先順序。斷點續傳對於HTTP一般是用Range欄位實現、FTP一般用REST命令——當然,你的程序自身必須維護一個「已接收位元組」之類的數據,用已提交這些請求。
去找些HTTP、FTP協議的資料,都有詳細的講解。

==========================================================
軟體原理 。主要是用軟體上傳和下載的原理是怎樣的?
這個很難用1,2句話說清楚,因為有IE下載,web下載,BT下載原理各不相同
你還是去看看相關的書吧

❻ 什麼是上傳什麼是下載常用的上傳、下載有哪些方式

上傳,是把你的東西,傳到互聯網上,存到伺服器的一個指定位置,下載,是把你想要的東西從網路伺服器下載到你的電腦里,

❼ 百度知道的文件上傳和下載功能怎樣使用

第一步:登錄
網路的用戶可以直接登錄網路文庫,如果您還沒有網路id,先注冊一個。
請注意:被封禁用戶將無上傳文檔和下載文檔的許可權。
--------------------------------------------------------------------------------
第二步:點擊「分享我的文檔」按鈕
在首頁和詳細文檔頁等頁面,有一個橘黃色的按鈕,「分享我的文檔」,點擊後進入文檔上傳頁面。整個文檔上傳操作簡單快捷,主要包括兩個部分:提交文檔附件;填寫文檔簡介。
--------------------------------------------------------------------------------
第三步:上傳文檔一——提交文檔附件
A: 點擊上傳文檔頁面的「瀏覽」按鈕上傳文檔
請從自己本地電腦上上傳附件。
附件上傳完成後,點擊「開始上傳」按鈕,您提交的附件會進行自動上傳。
B: 需要注意的是,目前文檔支持的類型包括:
.doc/.docx;.ppt/.pptx/.pps;.xls/.xlsx;.pot;.pps;.vsd;.rtf
.wps;.et;.dps.pdf.txtC: 為了保證用戶的上傳速度,我們允許上傳大小小於 10M 的文檔。
若您的文檔大小超過10M。我們建議您對文檔進行分拆,例如將一份word文檔中的內容,分拆為上下兩部分進行上傳。
--------------------------------------------------------------------------------
第四步:上傳文檔——填寫文檔簡介
A: 文檔標題默認為您上傳的附件的名稱。您也可以進行修改。文檔標題不能為空,最長可以輸入50個漢字。
B: 對文檔進行簡要的介紹,能夠方便其他用戶快速了解您文檔中所包含的主要內容。
文檔介紹不能為空,最長可以輸入300個漢字。
C: 每一份文檔都有所屬的正確分類,我們建議您為自己的文檔選擇合適的分類,這能夠讓您的文檔得到更多的瀏覽和下載。
D: 您可以在上傳時,選擇您的文檔被下載時對方所需付出的財富值,也即文檔的售價。
我們建議您將售價設定為免費,方便文檔的快速分享,同時也會獲得系統的財富值獎勵。
知道財富值和網路文庫財富值不能通用、
如果你的文庫財富值足夠還是不能下載的話,
1.IE瀏覽器:菜單欄——工具——管理載入項——「顯示:IE中當前載入的載入項」下,在「已啟用」項下,找到「迅雷下載支持」,將其禁用,確定,重啟IE瀏覽器。
2. 360瀏覽器:菜單欄——工具——下載器——(右下方)設置——(在「常規」欄下)將「默認的下載工具」後的向下的小箭頭點開,在下拉列表中,選「用IE下載」,確定。
或者這樣【不要用迅雷下載,關閉迅雷監視,用IE流覽器進入網路文庫,登陸後,點擊文檔下邊的「下載此文檔」就可以下載了
如果你的IE默......餘下全文>>

❽ 下載和上傳有什麼不同

這兩個事情唯一相同的,就是都屬於文件交互的過程。
但用途是大大不一樣的。

下載:將網路上共享的資源,選擇你喜歡的,對自己有用的,存到本地電腦中,方便隨時讀取使用,不用每次都連到網路上重新搜索。

上傳:將自己電腦里的文件、圖片等發布到網路中,供大家分享;
或者上傳到自己的網路硬碟空間中,方便自己在外面的時候,隨時隨地都可以讀取自己的文件。

無論上傳還是下載,目的都是資源共享或者為自己提供方便。
請根據實際需要選擇使用。
但切忌維護網路環境,不要隨便上傳或下載不和諧的資源文件,以免引起不必要的麻煩。

❾ java實現文件的上傳和下載

用輸出流 接受 一個下載地址的網路流
然後將這個輸出流 保存到本地一個文件 後綴與下載地址的後綴相同··

上傳的話 將某個文件流 轉成位元組流 上傳到某個webservice方法里

-------要代碼來代碼

URL url=new URL("http://www..com/1.rar");
URLConnection uc=url.openConnection();
InputStream in=uc.getInputStream();
BufferedInputStream bis=new BufferedInputStream(in);
FileOutputStream ft=new FileOutputStream("E://1.rar");

這是下載 上傳太麻煩就不給寫了

❿ 如何實現在網站的文件上傳和下載功能

呵呵, ASP的到JAVA來問啦.
-------給你引用一段。

文件的上傳下載是我們在實際項目開發過程中經常需要用到的技術,這里給出幾種常見的方法,本文主要內容包括:
1、如何解決文件上傳大小的限制
2、以文件形式保存到伺服器
3、轉換成二進制位元組流保存到資料庫以及下載方法
4、上傳Internet上的資源

第一部分:
首先我們來說一下如何解決ASP.NET中的文件上傳大小限制的問題,我們知道在默認情況下ASP.NET的文件上傳大小限制為2M,一般情況下,我們可以採用更改WEB.Config文件來自定義最大文件大小,如下:
<httpRuntime executionTimeout="300" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"/>這樣上傳文件的最大值就變成了4M,但這樣並不能讓我們無限的擴大MaxRequestLength的值,因為ASP.NET會將全部文件載入內存後,再加以處理。解決的方法是利用隱含的HttpWorkerRequest,用它的GetPreloadedEntityBody和ReadEntityBody方法從IIS為ASP.NET建立的pipe里分塊讀取數據。實現方法如下:
IServiceProviderprovider=(IServiceProvider)HttpContext.Current;
HttpWorkerRequestwr=(HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
byte[]bs=wr.GetPreloadedEntityBody();
.
if(!wr.IsEntireEntityBodyIsPreloaded())
{
intn=1024;
byte[]bs2=newbyte[n];
while(wr.ReadEntityBody(bs2,n)>0)
{
..
}
}這樣就可以解決了大文件的上傳問題了。

第二部分:
下面我們來介紹如何以文件形式將客戶端的一個文件上傳到伺服器並返回上傳文件的一些基本信息
首先我們定義一個類,用來存儲上傳的文件的信息(返回時需要)。
public class FileUpLoad
{
public FileUpLoad()
{

}
/**//// <summary>
/// 上傳文件名稱
/// </summary>
public string FileName
{
get
{
return fileName;
}
set
{
fileName = value;
}
}
private string fileName;

/**//// <summary>
/// 上傳文件路徑
/// </summary>
public string FilePath
{
get
{
return filepath;
}
set
{
filepath = value;
}
}
private string filepath;

/**//// <summary>
/// 文件擴展名
/// </summary>
public string FileExtension
{
get
{
return fileExtension;
}
set
{

fileExtension = value;
}

}
private string fileExtension;
}
另外我們還可以在配置文件中限制上傳文件的格式(App.Config):

<?xml version="1.0" encoding="gb2312" ?>
<Application>
<FileUpLoad>
<Format>.jpg|.gif|.png|.bmp</Format>
</FileUpLoad>
</Application>
這樣我們就可以開始寫我們的上傳文件的方法了,如下:
public FileUpLoad UpLoadFile(HtmlInputFile InputFile,string filePath,string myfileName,bool isRandom)
{

FileUpLoad fp = new FileUpLoad();

string fileName,fileExtension;
string saveName;

//
//建立上傳對象
//
HttpPostedFile postedFile = InputFile.PostedFile;

fileName = System.IO.Path.GetFileName(postedFile.FileName);
fileExtension = System.IO.Path.GetExtension(fileName);

//
//根據類型確定文件格式
//
AppConfig app = new AppConfig();
string format = app.GetPath("FileUpLoad/Format");

//
//如果格式都不符合則返回
//
if(format.IndexOf(fileExtension)==-1)
{
throw new ApplicationException("上傳數據格式不合法");
}

//
//根據日期和隨機數生成隨機的文件名
//
if(myfileName != string.Empty)
{
fileName = myfileName;
}

if(isRandom)
{
Random objRand = new Random();
System.DateTime date = DateTime.Now;
//生成隨機文件名
saveName = date.Year.ToString() + date.Month.ToString() + date.Day.ToString() + date.Hour.ToString() + date.Minute.ToString()

+ date.Second.ToString() + Convert.ToString(objRand.Next(99)*97 + 100);
fileName = saveName + fileExtension;
}

string phyPath = HttpContext.Current.Request.MapPath(filePath);

//判斷路徑是否存在,若不存在則創建路徑
DirectoryInfo upDir = new DirectoryInfo(phyPath);
if(!upDir.Exists)
{
upDir.Create();
}

//
//保存文件
//
try
{
postedFile.SaveAs(phyPath + fileName);

fp.FilePath = filePath + fileName;
fp.FileExtension = fileExtension;
fp.FileName = fileName;
}
catch
{
throw new ApplicationException("上傳失敗!");
}

//返回上傳文件的信息
return fp;

}
然後我們在上傳文件的時候就可以調用這個方法了,將返回的文件信息保存到資料庫中,至於下載,就直接打開那個路徑就OK了。

第三部分:
這里我們主要說一下如何以二進制的形式上傳文件以及下載。首先說上傳,方法如下:

public byte[] UpLoadFile(HtmlInputFile f_IFile)
{
//獲取由客戶端指定的上傳文件的訪問
HttpPostedFile upFile=f_IFile.PostedFile;
//得到上傳文件的長度
int upFileLength=upFile.ContentLength;
//得到上傳文件的客戶端MIME類型
string contentType = upFile.ContentType;
byte[] FileArray=new Byte[upFileLength];

Stream fileStream=upFile.InputStream;

fileStream.Read(FileArray,0,upFileLength);

return FileArray;

}
這個方法返回的就是上傳的文件的二進制位元組流,這樣我們就可以將它保存到資料庫了。下面說一下這種形式的下載,也許你會想到這種方式的下載就是新建一個aspx頁面,然後在它的Page_Load()事件里取出二進制位元組流,然後再讀出來就可以了,其實這種方法是不可取的,在實際的運用中也許會出現無法打開某站點的錯誤,我一般採用下面的方法:
首先,在Web.config中加入:
<add verb="*" path="openfile.aspx" type="RuixinOA.Web.BaseClass.OpenFile, RuixinOA.Web"/>
這表示我打開openfile.aspx這個頁面時,系統就會自動轉到執行RuixinOA.Web.BaseClass.OpenFile 這個類里的方法,具體實現如下:
using System;
using System.Data;
using System.Web;
using System.IO;
using Ruixin.WorkFlowDB;
using RXSuite.Base;
using RXSuite.Component;
using RuixinOA.BusinessFacade;

namespace RuixinOA.Web.BaseClass
{
/**//// <summary>
/// NetUFile 的摘要說明。
/// </summary>
public class OpenFile : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{

//從資料庫中取出要下載的文件信息
RuixinOA.BusinessFacade.RX_OA_FileManager os = new RX_OA_FileManager();
EntityData data = os.GetFileDetail(id);

if(data != null && data.Tables["RX_OA_File"].Rows.Count > 0)
{
DataRow dr = (DataRow)data.Tables["RX_OA_File"].Rows[0];

context.Response.Buffer = true;
context.Response.Clear();
context.Response.ContentType = dr["CContentType"].ToString();
context.Response.AddHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(dr["CTitle"].ToString()));
context.Response.BinaryWrite((Byte[])dr["CContent"]);
context.Response.Flush();
context.Response.End();
}

}

public bool IsReusable
{

get { return true;}
}
}
}

執行上面的方法後,系統會提示用戶選擇直接打開還是下載。這一部分我們就說到這里。

第四部分:

這一部分主要說如何上傳一個Internet上的資源到伺服器。前面我們有一篇文章詳細介紹了使用方法,這里我不再多說。
請參考:將動態頁面轉化成二進制位元組流

第五部分:總結
今天簡單的介紹了幾種文件上傳與下載的方法,都是在實際的項目開發中經常需要用到的,可能還有不完善的地方,希望大家可以互相交流一下項目開發中的經驗。寫的不好的地方,請指正,謝謝!

熱點內容
押韻腳本生成器 發布:2024-10-25 22:26:50 瀏覽:368
找文檔上傳 發布:2024-10-25 22:22:29 瀏覽:875
hibernate使用二級緩存 發布:2024-10-25 22:14:00 瀏覽:359
手機版登陸布穀鳥伺服器地址 發布:2024-10-25 22:13:59 瀏覽:173
域名表示一台列印機伺服器的ip地址 發布:2024-10-25 22:13:05 瀏覽:981
簡歷php項目 發布:2024-10-25 22:06:15 瀏覽:707
鐵塔基站配置箱里有什麼 發布:2024-10-25 22:05:03 瀏覽:537
酷我上傳歌單 發布:2024-10-25 22:03:47 瀏覽:844
我的世界啟動器的伺服器如何加材質包 發布:2024-10-25 21:59:03 瀏覽:628
遼寧省dns的伺服器地址是多少 發布:2024-10-25 21:45:16 瀏覽:653