JSP做的简单的文件上传下载代码

想要个一个JSP做的简单的文件上传下载代码不要连数据库的只是上传和下载两个功能就可以加我的QQ573840013可以用的话我会提高悬赏的... 想要个一个JSP做的简单的文件上传下载代码
不要连数据库的
只是上传和下载两个功能就可以
加我的QQ 573840013
可以用的话
我会提高悬赏的
展开
 我来答
aaronswon
2009-03-30 · TA获得超过3481个赞
知道大有可为答主
回答量:1863
采纳率:0%
帮助的人:1613万
展开全部
//////////////////////用Servlvet实现文件上传,参考参考吧
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class UploadTest extends HttpServlet {
String rootPath, successMessage;

static final int MAX_SIZE = 102400;
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out = new PrintWriter (response.getOutputStream());
out.println("<html>");
out.println("<head><title>Servlet1</title></head>");
out.println("<body><form ENCTYPE=\"multipart/form-data\" method=post action=''><input type=file enctype=\"multipart/form-data\" name=filedata>");
out.println("<input type=submit></form>");
out.println("</body></html>");
out.close();
}

public void doPost(HttpServletRequest request,HttpServletResponse response)
{
ServletOutputStream out=null;
DataInputStream in=null;
FileOutputStream fileOut=null;
try
{
/*set content type of response and get handle to output stream in case we are unable to redirect client*/
response.setContentType("text/plain");
out = response.getOutputStream();
}
catch (IOException e)
{
//print error message to standard out
System.out.println("Error getting output stream.");
System.out.println("Error description: " + e);
return;
}

try
{
String contentType = request.getContentType();
//make sure content type is multipart/form-data
if(contentType != null && contentType.indexOf("multipart/form-data") != -1)
{
//open input stream from client to capture upload file
in = new DataInputStream(request.getInputStream());
//get length of content data
int formDataLength = request.getContentLength();
//allocate a byte array to store content data
byte dataBytes[] = new byte[formDataLength];
//read file into byte array
int bytesRead = 0;
int totalBytesRead = 0;
int sizeCheck = 0;
while (totalBytesRead < formDataLength)
{
//check for maximum file size violation
sizeCheck = totalBytesRead + in.available();
if (sizeCheck > MAX_SIZE)
{
out.println("Sorry, file is too large to upload.");
return;
}
bytesRead = in.read(dataBytes, totalBytesRead, formDataLength);
totalBytesRead += bytesRead;
}
//create string from byte array for easy manipulation
String file = new String(dataBytes);
//since byte array is stored in string, release memory
dataBytes = null;
/*get boundary value (boundary is a unique string that
separates content data)*/
int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex+1,
contentType.length());
//get Directory web variable from request
String directory="";
if (file.indexOf("name=\"Directory\"") > 0)
{
directory = file.substring(file.indexOf("name=\"Directory\""));
//remove carriage return
directory = directory.substring(directory.indexOf("\n")+1);
//remove carriage return
directory = directory.substring(directory.indexOf("\n")+1);
//get Directory
directory = directory.substring(0,directory.indexOf("\n")-1);
/*make sure user didn't select a directory higher in the directory tree*/
if (directory.indexOf("..") > 0)
{
out.println("Security Error: You can't upload " +"to a directory higher in the directory tree.");
return;
}
}
//get SuccessPage web variable from request
String successPage="";
if (file.indexOf("name=\"SuccessPage\"") > 0)
{
successPage = file.substring(file.indexOf("name=\"SuccessPage\""));
//remove carriage return
successPage = successPage.substring(successPage.indexOf("\n")+1);
//remove carriage return
successPage = successPage.substring(successPage.indexOf("\n")+1);
//get success page
successPage = successPage.substring(0,successPage.indexOf("\n")-1);}
//get OverWrite flag web variable from request
String overWrite;
if (file.indexOf("name=\"OverWrite\"") > 0)
{
overWrite = file.substring(file.indexOf("name=\"OverWrite\""));
//remove carriage return
overWrite = overWrite.substring(
overWrite.indexOf("\n")+1);
//remove carriage return
overWrite = overWrite.substring(overWrite.indexOf("\n")+1);
overWrite = overWrite.substring(0,overWrite.indexOf("\n")-1);
}
else
{
overWrite = "false";
}
//get OverWritePage web variable from request
String overWritePage="";
if (file.indexOf("name=\"OverWritePage\"") > 0)
{
overWritePage = file.substring(file.indexOf("name=\"OverWritePage\""));
//remove carriage return
overWritePage = overWritePage.substring(overWritePage.indexOf("\n")+1);
//remove carriage return
overWritePage = overWritePage.substring(overWritePage.indexOf("\n")+1);
//get overwrite page
overWritePage = overWritePage.substring(0,overWritePage.indexOf("\n")-1);
}
//get filename of upload file
String saveFile = file.substring(file.indexOf("filename=\"")+10);
saveFile = saveFile.substring(0,saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\")+1,
saveFile.indexOf("\""));
/*remove boundary markers and other multipart/form-data
tags from beginning of upload file section*/
int pos; //position in upload file
//find position of upload file section of request
pos = file.indexOf("filename=\"");
//find position of content-disposition line
pos = file.indexOf("\n",pos)+1;
//find position of content-type line
pos = file.indexOf("\n",pos)+1;
//find position of blank line
pos = file.indexOf("\n",pos)+1;
/*find the location of the next boundary marker
(marking the end of the upload file data)*/
int boundaryLocation = file.indexOf(boundary,pos)-4;
//upload file lies between pos and boundaryLocation
file = file.substring(pos,boundaryLocation);
//build the full path of the upload file
String fileName = new String(rootPath + directory +
saveFile);
//create File object to check for existence of file
File checkFile = new File(fileName);
if (checkFile.exists())
{
/*file exists, if OverWrite flag is off, give
message and abort*/
if (!overWrite.toLowerCase().equals("true"))
{
if (overWritePage.equals(""))
{
/*OverWrite HTML page URL not received, respond
with generic message*/
out.println("Sorry, file already exists.");
}
else
{
//redirect client to OverWrite HTML page
response.sendRedirect(overWritePage);
}
return;
}
}
/*create File object to check for existence of
Directory*/
File fileDir = new File(rootPath + directory);
if (!fileDir.exists())
{
//Directory doesn't exist, create it
fileDir.mkdirs();
}
//instantiate file output stream
fileOut = new FileOutputStream(fileName);
//write the string to the file as a byte array
fileOut.write(file.getBytes(),0,file.length());
if (successPage.equals(""))
{
/*success HTML page URL not received, respond with
eneric success message*/
out.println(successMessage);
out.println("File written to: " + fileName);
}
else
{
//redirect client to success HTML page
response.sendRedirect(successPage);
}
}
else //request is not multipart/form-data
{
//send error message to client
out.println("Request not multipart/form-data.");
}
}
catch(Exception e)
{
try
{
//print error message to standard out
System.out.println("Error in doPost: " + e);
//send error message to client
out.println("An unexpected error has occurred.");
out.println("Error description: " + e);
}
catch (Exception f) {}
}
finally
{
try
{
fileOut.close(); //close file output stream
}
catch (Exception f) {}
try
{
in.close(); //close input stream from client
}
catch (Exception f) {}
try
{
out.close(); //close output stream to client
}
catch (Exception f) {}
}
}

}
smluyi
2009-03-30 · TA获得超过1356个赞
知道大有可为答主
回答量:515
采纳率:0%
帮助的人:810万
展开全部
这边是传一个url上传地址,和你要上传的文件名过去,然后直接用下面的jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<jsp:directive.page import="java.io.OutputStream"/>
<jsp:directive.page import="java.io.FileInputStream"/>
<jsp:directive.page import="java.net.URLEncoder"/>
<jsp:directive.page import="java.net.URLDecoder"/>
<div>正在请求数据.......请稍后</div>
<%
String url = request.getParameter("url");
String fileName = request.getParameter("fileName");
Integer fileSize = Integer.valueOf(request.getParameter("fileSize"));
System.out.println(url);
System.out.println(fileName);
System.out.println(fileSize);
response.reset();//可以加也可以不加
response.setContentType("application/x-download");//设置为下载application/x-download
String filenamedownload = application.getRealPath(url);
fileName = URLEncoder.encode(fileName,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + fileName);
response.setContentLength(fileSize);

OutputStream output = null;
FileInputStream fis = null;
try{
output = response.getOutputStream();
fis = new FileInputStream(URLDecoder.decode(filenamedownload));
byte[] b = new byte[8192];
int i = 0;

while((i = fis.read(b)) > 0){
output.write(b, 0, i);
}
output.flush();
}catch(Exception e){
out.print("<strong>异常:</strong>" + e.getMessage());
}finally{
if(fis != null){
fis.close();
}if(output != null){
output.close();
}
}
out.clear();
out=pageContext.pushBody();
%>

<script type="text/javascript">
window.close();
</script>
----------------------------------------------------------------
下载更简单了直接<a href="文件相对路径">下载</a>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0c3258b02
2009-03-30 · TA获得超过672个赞
知道小有建树答主
回答量:550
采纳率:0%
帮助的人:626万
展开全部
我记得有个smartupload的开源jar包,
你上网找下,
直接调用就行了,
很容易
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jrj2330345
2009-03-30 · TA获得超过253个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:87.6万
展开全部
晕,给你写完了,人怎么没了呢……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flsfycy
2009-03-30 · TA获得超过729个赞
知道小有建树答主
回答量:1002
采纳率:0%
帮助的人:711万
展开全部
文件上传有几个现成的代码,你可以google下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式