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

jsp文件上傳下載

發布時間: 2023-02-01 18:58:58

『壹』 jsp實現文件(doc,pdf,jpg,xls,ppt)上傳下載功能.

當然可以了啊,你只需要在後台文件中增加讀取文件信息,然後歸類的方法就行了。
如果你是單純用JSP然後就直接連接DB。。。。。直接在DAO裡面實現吧,把文件信息分別讀出來,然後insert到一張表裡面去,並且,附上文件的path。也就是說,那張表裡面至少得要有文件的路徑,然後才是你所需要保存的信息。

『貳』 Jsp上傳文件報錯:Undefined type: org.lxh.smart.SmartUpload java

這個錯誤是由於jsp頁面導入jar包錯誤導致SmartUpload沒有找到。 應該是導入com.jspsmart.upload.SmartUpload這個類。jspSmartUpload是一個可免費使用的全功能的文件上傳下載組件,適於嵌入執行上傳下載操作的JSP文件中。該組件有以下幾個特點:1、使用簡單。在JSP文件中僅僅書寫三五行java代碼就可以搞定文件的上傳或下載,方便。2、能全程式控制制上傳。利用jspSmartUpload組件提供的對象及其操作方法,可以獲得全部上傳文件的信息(包括文件名,大小,類型,擴展名,文件數據等),方便存取。3、能對上傳的文件在大小、類型等方面做出限制。如此可以濾掉不符合要求的文件。4、下載靈活。僅寫兩行代碼,就能把Web伺服器變成文件伺服器。不管文件在Web伺服器的目錄下或在其它任何目錄下,都可以利用jspSmartUpload進行下載。

『叄』 jsp怎麼下載上傳文件

去apache網站上下個common-fileupload上傳組件用就可以了!

『肆』 JSP怎麼上傳文件,並更改後綴名,再下載

很簡單的呀,你只要把這個文件上傳到文件夾里,然後掃描就可以了。

『伍』 jsp上傳下載文件的路徑問題

jsp上傳下載文件的路徑是在伺服器建立指定路徑如下:
//接收上傳文件內容中臨時文件的文件名
String tempFileName = new String("tempFileName");
//tempfile 對象指向臨時文件
File tempFile = new File("D:/"+tempFileName);
//outputfile 文件輸出流指向這個臨時文件
FileOutputStream outputStream = new FileOutputStream(tempFile);
//得到客服端提交的所有數據
InputStream fileSourcel = request.getInputStream();
//將得到的客服端數據寫入臨時文件
byte b[] = new byte[1000];
int n ;
while ((n=fileSourcel.read(b))!=-1){
outputStream.write(b,0,n);
}

//關閉輸出流和輸入流
outputStream.close();
fileSourcel.close();

//randomFile對象指向臨時文件
RandomAccessFile randomFile = new RandomAccessFile(tempFile,"r");
//讀取臨時文件的第一行數據
randomFile.readLine();
//讀取臨時文件的第二行數據,這行數據中包含了文件的路徑和文件名
String filePath = randomFile.readLine();
//得到文件名
int position = filePath.lastIndexOf('\\');
CodeToString codeToString = new CodeToString();
String filename = codeToString.codeString(filePath.substring(position,filePath.length()-1));
//重新定位讀取文件指針到文件頭
randomFile.seek(0);
//得到第四行回車符的位置,這是上傳文件數據的開始位置
long forthEnterPosition = 0;
int forth = 1;
while((n=randomFile.readByte())!=-1&&(forth<=4)){
if(n=='\n'){
forthEnterPosition = randomFile.getFilePointer();
forth++;
}
}

//生成上傳文件的目錄
File fileupLoad = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file","upLoad");
fileupLoad.mkdir();
//saveFile 對象指向要保存的文件
File saveFile = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad",filename);
RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile,"rw");
//找到上傳文件數據的結束位置,即倒數第四行
randomFile.seek(randomFile.length());
long endPosition = randomFile.getFilePointer();
int j = 1;
while((endPosition>=0)&&(j<=4)){
endPosition--;
randomFile.seek(endPosition);
if(randomFile.readByte()=='\n'){
j++;
}
}

//從上傳文件數據的開始位置到結束位置,把數據寫入到要保存的文件中
randomFile.seek(forthEnterPosition);
long startPoint = randomFile.getFilePointer();
while(startPoint<endPosition){
randomAccessFile.write(randomFile.readByte());
startPoint = randomFile.getFilePointer();
}
//關閉文件輸入、輸出
randomAccessFile.close();
randomFile.close();
tempFile.delete();

jsp文件下載選擇路徑:
//要下載的文件
File fileload = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad",filename);

『陸』 請問誰會文件的上傳和下載啊,基於jsp的,直接右擊連接,另存為的那種

要用到jspSmartUpload組件,先到www.jspsmart.com網站下載這個組件(或直接搜它),下載解壓後,把Web-inf/classes下的文件打成JAR包,放到Tomcat的,lib下,再在你的項目中導入此JAR包。
下面附代碼給你,去試試:
jspSmartUpload.html
<head>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<body>
<CENTER>
<FONT SIZE = 5 COLOR = blue>一個關於文件上傳的例子</FONT>
</CENTER>
<BR>
<HR>
<BR>
<form method="post" action="jspSmartUpload.jsp" enctype="multipart/form-data">
<input type="hidden" name="TEST" value="good">
<table width="80%" border="0" align="center">
<tr>
<td>1.
<input type="FILE" name="FILE1" size="30">
</td>
</tr>
<tr>
<td>2.
<input type="FILE" name="FILE2" size="30">
</td>
</tr>
<tr>
<td>
<center>
<br><input type="submit" name="Submit" value="上傳">
</center>
</td>
</tr>
</table>
</form>
</body>
</html>

jspSmartUpload.jsp
<html>
<head>
<title>文件上傳成功</title>
</head>
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.io.File,com.jspsmart.upload.*"%>
<body>
<CENTER>
<FONT SIZE = 5 COLOR = blue>恭喜您!文件上傳成功</FONT>
</CENTER>
<BR>
<HR>
<BR>
<%
//新建一個SmartUpload對象
com.jspsmart.upload.SmartUpload su = new SmartUpload();
// 上傳初始化
su.initialize(pageContext);
//上傳文件
su.upload();
// 將上傳文件全部保存到指定目錄
int count = su.save("/upload/");
out.println("成功上傳"+count+"個文件!<br>");
%>
<p>
上傳文件的信息如下:
</p>
<table border=1 align="center">
<tr>
<td>文件編號</td>
<td>文件大小(位元組)</td>
<td>文件名</td>
<td>文件類型</td>
</tr>
<%
//逐一提取上傳文件信息,同時可保存文件。
for(int i=0;i<su.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = su.getFiles().getFile(i);
//若文件不存在則繼續
if(file.isMissing()) continue;
//顯示當前文件信息
%>
<tr>
<td><%=file.getFieldName()%></td>
<td><%=file.getSize()%></td>
<td><%=file.getFileName()%></td>
<td><%=file.getFileExt()%></td>
</tr>
<%
}%>
</table>
</body>
</html>

downloadFile.html
<html>
<head>
<title>下載文件</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<body>
<CENTER>
<FONT SIZE = 5 COLOR = blue>下載文件</FONT>
</CENTER>
<BR>
<HR>
<BR>
<p>要下載的文件是:</p>
<p>
test.doc
</p>
<center>
<a href="downloadFile.jsp">單擊下載</a>
</center>
</body>
</html>

downloadFile.jsp
<html>
<head>
<title>文件下載處理頁面</title>
</head>
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="com.jspsmart.upload.*"%>
<body>
<%
// 新建一個SmartUpload對象
SmartUpload su=new SmartUpload();
// 初始化
su.initialize(pageContext);
// 設定contentDisposition為null以禁止瀏覽器自動打開文件
su.setContentDisposition(null);
// 下載文件
su.downloadFile("/download/test.doc");
%>
</body>
</html>

『柒』 jsp 如何實現文件上傳和下載功能

上傳:

MyjspForm mf = (MyjspForm) form;// TODO Auto-generated method stub

FormFile fname=mf.getFname();

byte [] fn = fname.getFileData();

OutputStream out = new FileOutputStream("D:\"+fname.getFileName());

Date date = new Date();

String title = fname.getFileName();

String url = "d:\"+fname.getFileName();

Upload ul = new Upload();

ul.setDate(date);

ul.setTitle(title);

ul.setUrl(url);

UploadDAO uld = new UploadDAO();

uld.save(ul);

out.write(fn);

out.close();

下載:

DownloadForm downloadForm = (DownloadForm)form;

String fname = request.getParameter("furl");

FileInputStream fi = new FileInputStream(fname);

byte[] bt = new byte[fi.available()];

fi.read(bt);

//設置文件是下載還是打開以及打開的方式msdownload表示下載;設置字湖集,//主要是解決文件中的中文信息

response.setContentType("application/msdownload;charset=gbk");

//文件下載後的默認保存名及打開方式

String contentDisposition = "attachment; filename=" + "java.txt";

response.setHeader("Content-Disposition",contentDisposition);

//設置下載長度

response.setContentLength(bt.length);

ServletOutputStream sos = response.getOutputStream();

sos.write(bt);

return null;

『捌』 JSP頁面如何實現上傳文件時候點一下添加就多出一行

給你個實例:

<html>
<head>
<script language=javascript>
function addRow(){
var f = document.forms['formTest'];
var input = document.createElement('input');
input.setAttribute("type","file");
input.setAttribute("size","30");
input.setAttribute("name","test");
f.appendChild(input);
var br = document.createElement('br');
f.appendChild(br);
}
</script>
</head>
</body>
<form name=formTest action="FileUploadServlet" method="post"
enctype="multipart/form-data">
<input name="up" type="submit" value="上傳" />
<button type="button" onclick='addRow();'>加入一行</button><br/>
<input type="file" size="30" name="test" />
<br />
</form>
</body>
</html>

『玖』 jsp上傳文件的問題

用JSP實現文件上傳功能,參考如下:
UploadExample.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<title><%= application.getServerInfo() %></title>
<body>
上傳文件程序應用示例
<form action="doUpload.jsp" method="post" enctype="multipart/form-data">
<%-- 類型enctype用multipart/form-data,這樣可以把文件中的數據作為流式數據上傳,不管是什麼文件類型,均可上傳。--%>
請選擇要上傳的文件<input type="file" name="upfile" size="50">
<input type="submit" value="提交">
</form>
</body>
</html>

doUpload.jsp

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<html><head><title>upFile</title></head>
<body bgcolor="#ffffff">
<%
//定義上載文件的最大位元組
int MAX_SIZE = 102400 * 102400;
// 創建根路徑的保存變數
String rootPath;
//聲明文件讀入類
DataInputStream in = null;
FileOutputStream fileOut = null;
//取得客戶端的網路地址
String remoteAddr = request.getRemoteAddr();
//獲得伺服器的名字
String serverName = request.getServerName();

//取得互聯網程序的絕對地址
String realPath = request.getRealPath(serverName);
realPath = realPath.substring(0,realPath.lastIndexOf("\\"));
//創建文件的保存目錄
rootPath = realPath + "\\upload\\";
//取得客戶端上傳的數據類型
String contentType = request.getContentType();
try{
if(contentType.indexOf("multipart/form-data") >= 0){
//讀入上傳的數據
in = new DataInputStream(request.getInputStream());
int formDataLength = request.getContentLength();
if(formDataLength > MAX_SIZE){
out.println("<P>上傳的文件位元組數不可以超過" + MAX_SIZE + "</p>");
return;
}
//保存上傳文件的數據
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
//上傳的數據保存在byte數組
while(totalBytesRead < formDataLength){
byteRead = in.read(dataBytes,totalBytesRead,formDataLength);
totalBytesRead += byteRead;
}
//根據byte數組創建字元串
String file = new String(dataBytes);
//out.println(file);
//取得上傳的數據的文件名
String saveFile = file.substring(file.indexOf("filename=\"") + 10);
saveFile = saveFile.substring(0,saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
int lastIndex = contentType.lastIndexOf("=");
//取得數據的分隔字元串
String boundary = contentType.substring(lastIndex + 1,contentType.length());
//創建保存路徑的文件名
String fileName = rootPath + saveFile;
//out.print(fileName);
int pos;
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n",pos) + 1;
pos = file.indexOf("\n",pos) + 1;
pos = file.indexOf("\n",pos) + 1;
int boundaryLocation = file.indexOf(boundary,pos) - 4;
//out.println(boundaryLocation);
//取得文件數據的開始的位置
int startPos = ((file.substring(0,pos)).getBytes()).length;
//out.println(startPos);
//取得文件數據的結束的位置
int endPos = ((file.substring(0,boundaryLocation)).getBytes()).length;
//out.println(endPos);
//檢查上載文件是否存在
File checkFile = new File(fileName);
if(checkFile.exists()){
out.println("<p>" + saveFile + "文件已經存在.</p>");
}
//檢查上載文件的目錄是否存在
File fileDir = new File(rootPath);
if(!fileDir.exists()){
fileDir.mkdirs();
}
//創建文件的寫出類
fileOut = new FileOutputStream(fileName);
//保存文件的數據
fileOut.write(dataBytes,startPos,(endPos - startPos));
fileOut.close();
out.println(saveFile + "文件成功上載.</p>");
}else{
String content = request.getContentType();
out.println("<p>上傳的數據類型不是multipart/form-data</p>");
}
}catch(Exception ex){
throw new ServletException(ex.getMessage());
}
%>
</body>
</html>
運行方法,將這兩個JSP文件放在同一路徑下,運行UploadExample.jsp即可。

『拾』 jsp 文件上傳和下載

1.jsp頁面
<s:form action="fileAction" namespace="/file" method="POST" enctype="multipart/form-data">
<!-- name為後台對應的參數名稱 -->
<s:file name="files" label="file1"></s:file>
<s:file name="files" label="file2"></s:file>
<s:file name="files" label="file3"></s:file>
<s:submit value="提交" id="submitBut"></s:submit>
</s:form>
2.Action
//單個文件上傳可以用 File files,String filesFileName,String filesContentType
//名稱要與jsp中的name相同(三個變數都要生成get,set)
private File[] files;
// 要以File[]變數名開頭
private String[] filesFileName;
// 要以File[]變數名開頭
private String[] filesContentType;

private ServletContext servletContext;

//Action調用的上傳文件方法
public String execute() {
ServletContext servletContext = ServletActionContext.getServletContext();
String dataDir = servletContext.getRealPath("/file/upload");
System.out.println(dataDir);
for (int i = 0; i < files.length; i++) {
File saveFile = new File(dataDir, filesFileName[i]);
files[i].renameTo(saveFile);
}
return "success";
}
3.配置上傳文件臨時文件夾(在struts.xml中配置)
<constant name="struts.multipart.saveDir" value="c:/temp"/>
文件下載
1.下載的url(到Action)
<a href="${pageContext.request.contextPath}/file/fileAction!down.action">下載</a>
2.struts.xml配置
<package name="file" namespace="/file" extends="struts-default">
<action name="fileAction" class="com.struts2.file.FileAction">
<!-- 下載文件配置 -->
<!--type 為 stream 應用 StreamResult 處理-->
<result name="down" type="stream">
<!--
不管實際類型,待下載文件 ContentType 統一指定為 application/octet-stream
默認為 text/plain
-->
<param name="contentType">application/octet-stream</param>
<!--
默認就是 inputStream,它將會指示 StreamResult 通過 inputName 屬性值的 getter 方法,
比如這里就是 getInputStream() 來獲取下載文件的內容,意味著你的 Action 要有這個方法
-->
<param name="inputName">inputStream</param>
<!--
默認為 inline(在線打開),設置為 attachment 將會告訴瀏覽器下載該文件,filename 指定下載文
件保有存時的文件名,若未指定將會是以瀏覽的頁面名作為文件名,如以 download.action 作為文件名,
這里使用的是動態文件名,${fileName}, 它將通過 Action 的 getFileName() 獲得文件名
-->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<!-- 輸出時緩沖區的大小 -->
<param name="bufferSize">4096</param>
</result>
</action>
</package>
3.Action
//Action調用的下載文件方法
public String down() {
return "down";
}

//獲得下載文件的內容,可以直接讀入一個物理文件或從資料庫中獲取內容
public InputStream getInputStream() throws Exception {
String dir = servletContext.getRealPath("/file/upload");
File file = new File(dir, "icon.png");
if (file.exists()) {
//下載文件
return new FileInputStream(file);

//和 Servlet 中不一樣,這里我們不需對輸出的中文轉碼為 ISO8859-1
//將內容(Struts2 文件下載測試)直接寫入文件,下載的文件名必須是文本(txt)類型
//return new ByteArrayInputStream("Struts2 文件下載測試".getBytes());
}
return null;
}

// 對於配置中的 ${fileName}, 獲得下載保存時的文件名
public String getFileName() {
String fileName ="圖標.png";
try {
// 中文文件名也是需要轉碼為 ISO8859-1,否則亂碼
return new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
return "icon.png";
}
}

熱點內容
app什麼情況下找不到伺服器 發布:2025-05-12 15:46:25 瀏覽:714
php跳過if 發布:2025-05-12 15:34:29 瀏覽:467
不定時演算法 發布:2025-05-12 15:30:16 瀏覽:131
c語言延時1ms程序 發布:2025-05-12 15:01:30 瀏覽:167
動物園靈長類動物配置什麼植物 發布:2025-05-12 14:49:59 瀏覽:738
wifi密碼設置什麼好 發布:2025-05-12 14:49:17 瀏覽:150
三位數乘兩位數速演算法 發布:2025-05-12 13:05:48 瀏覽:399
暴風影音緩存在哪裡 發布:2025-05-12 12:42:03 瀏覽:545
access資料庫exe 發布:2025-05-12 12:39:04 瀏覽:632
五開的配置是什麼 發布:2025-05-12 12:36:37 瀏覽:367