关于上传图片到服务器的程序,或程序片断的问题

wolfsmoke 2001-05-21 02:10:00
哪位大虾有:
上传图片到服务器的程序,或程序片断
小弟万分感谢!!!!
...全文
59 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
skyyoung 2001-05-21
在论坛查找“upload"
回复
nels1028 2001-05-21
public class UploadServlet extends HttpServlet
{
//default maximum allowable file size is 100k
static final int MAX_SIZE = 102400;
//instance variables to store root and success message
String rootPath, successMessage;
/**
* init method is called when servlet is initialized.
*/
public void init(ServletConfig config) throws ServletException
{
super.init(config);
//get path in which to save file
rootPath = config.getInitParameter("RootPath");
if (rootPath == null)
{
rootPath = "/";
}
/*Get message to show when upload is complete. Used only if
a success redirect page is not supplied.*/
successMessage = config.getInitParameter("SuccessMessage");
if (successMessage == null)
{
successMessage = "File upload complete!";
}
}
/**
* doPost reads the uploaded data from the request and writes
* it to a file.
*/
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
{
//get content type of client request
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);
//get overwrite flag
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(
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2001-05-21 02:10
社区公告
暂无公告