如何用JAVA BEAN+JSP实现客户端向服务器传送文件 com.jspsmart.upload.SmartUpload上传行吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我有成功的例子只是没有权限问题,我只是传了文件到LINUX服务器上查看权限,除了ROOT有RW,其他都只读不明白你所谓的设计到权限转换问题是指什么? 原来都是菜鸟郁闷。。可以不能去javaranch。。去那里就有答案的了。。 下面是一个非常好用的文件上传JAVABEAN 分为几部分发送/*作者:王思龙单位:东风汽车公司版本:v1.00*/package com.upload;public class InputField{private String inputName; //输入区名private String inputContent; //输入内容public void setInputName(String inputName){this.inputName = inputName;}public void setInputContent(String inputContent){this.inputContent = inputContent;}public String getInputName(){return inputName;}public String getInputContent(){return inputContent;}} /*作者:王思龙单位:东风汽车公司版本:v1.00*/package com.upload;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;import com.upload.UploadBean;import com.upload.FileInfo;import com.upload.InputField;public class ResultServlet extends HttpServlet {static final private String CONTENT_TYPE = "text/html; charset=GBK";UploadBean upload = new UploadBean();//Process the HTTP Get requestpublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);PrintWriter out = response.getWriter();result(request,out);}private void result(HttpServletRequest request,PrintWriter out)throws ServletException, IOException{//以下演示说明调用方法//请注意本页注释//实例化 servlet 调用与以下方法相同FileInfo fileInfo = new FileInfo();//设置单个文件长度上限值,参数为:longupload.setSingleFileMaxSize(1024*1024*10);//设置文件总长度上限值 参数为:longupload.setTotalFilesMaxSize(1024*1024*100);//设置上传文件数量上限值 参数为:intupload.setTotalFilesMaxCount(10);//设置服务器端存放路径 参数为:string 请注意路径格式//若不设置,将默认放在主页根目录下,以下是防于根目录下String savePath = "c:/jsp1";upload.setSavePath(savePath);//上载操作 参数为:request servlet中调用与此相同upload.uploadFile(request);out.print("<br><br><font face='黑体' size='5'><center>已成功上载" + upload.getUpFilesCount() + "个文件</center>");out.print("<center>以下为所有上载请求的文件列表</font></center>");out.print("<br><br>");out.print("<div align='center'><table border=1 cellpadding=0 cellspacing=0 style='border-collapse: collapse' bordercolor='#111111' width='80%' >");out.print("<tr><td>上载序号</td><td>上载请求名</td><td>文件名称</td><td>访问路径</td><td>文件大小(Byte)</td><td>是否成功</td></tr>");int i;//得到上载的文件数int j = upload.getPageFileCount();for(i=0;i<j;i++){out.print("<tr>");//得到文件信息前首先得到文件信息对象//取得访问的文件对象upload.getUpFilesInfo(i) i为上载文件的序号//对应类为 com.top.web.upload.FileInfofileInfo = upload.getUpFilesInfo(i);//上载序号out.print("<td>" + (new Integer(i).toString()+"") + "</td>");//取得上载请求名out.print("<td>" + fileInfo.getReqName() + "</td>");//取得文件名称out.print("<td>" + fileInfo.getFileName() + "</td>");//取得文件访问路径out.print("<td>" + fileInfo.getFilePath() + "</td>");//取得文件大小out.print("<td>" + fileInfo.getFileSize() + "</td>");if(fileInfo.isSuccess())out.print("<td>" + "是" + "</td>");elseout.print("<td>" + "否" + "</td>");out.print("</tr>");}out.print("</table></div><br>");//判断是否存在文件总长度溢出情况if(upload.isTotalSizeOverFlow())out.println("请检查您的上载文件,您准备上载的文件总长超过设置的上限!"+"<br>");//判断是否存在文件数量溢出情况if(upload.isTotalCountOverFlow())out.println("请检查您的上载文件,您准备上载的文件数量超过设置的上限!"+"<br>");//判断是否存在单个文件超长情况if(upload.isSizeOverFlow())out.println("请检查您的上载文件,您准备上载的某个文件超过单个文件长度的上限!"+"<br>");//以下演示输入区的取值//一、按输入区name取,推荐使用 请输入您需要取的内容out.println("以下演示按输入区name取,推荐使用!"+"<br>");out.println("您所输入的摘要内容为:");out.println(upload.getParameter("explain1"));out.println("<br><br>");//以下演示按输入项的顺序号取,不推荐使用out.println("以下演示按输入项的顺序号取,不推荐使用!"+"<br>");out.println("您在以下输入区域输入的内容为:"+"<br>");for(i=0;i<upload.getInputFieldCount();i++){//取得输入区域的的指针对象InputField inputField = new InputField();inputField = upload.getInputField(i);//取得输入区的nameout.println(inputField.getInputName()+":");//取得输入区的内容out.println(inputField.getInputContent()+"<br>");}}//Clean up resourcespublic void destroy() {}} package com.upload;import java.io.*;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.ServletInputStream;public class UpBean {public void doUpload(HttpServletRequest req) throws ServletException, IOException{//首先定义一个文本文件File file = new File("out.txt");//readCount 记录从输入流中实际读取的字符数int readCount;//输入流缓冲区byte[] readByte = new byte[1024];//初始化输入流ServletInputStream servletInputStream = req.getInputStream();//初始化一个输出流(到文件)FileOutputStream fileOutputStream = new FileOutputStream(file);//循环从读取输入流中读取字节readCount = servletInputStream.readLine(readByte, 0,readByte.length);while(readCount != -1){fileOutputStream.write(readByte,0,readCount);readCount = servletInputStream.readLine(readByte, 0, 1024);}//关闭文件流fileOutputStream.flush();}} 关于动态删除指定的行 struts2问题 对于有密码的word,pdf 难道书上是错的?大家帮忙看看程序。 请问大家一关于JAVA自身的问题 关于数据表的更新 如何将JSP页面输入的数据转换为浮点数格式后转换为String型? 初学者问题,不知根目录是那个目录? 怎么把datetime的时间显示出只要年、月、日?在查询数据库时怎样查一段时间内的内容? 请问jsp怎么调用java的APPLICATION程序? DBConnectionManager的使用,非常郁闷 100分急寻mssql6.5的jdbc驱动!!!!各位兄弟帮帮忙!!
只是没有权限问题,我只是传了文件到LINUX服务器上
查看权限,除了ROOT有RW,其他都只读
不明白你所谓的设计到权限转换问题是指什么?
郁闷。。可以不能去javaranch。。去那里就有答案的了。。
作者:王思龙
单位:东风汽车公司
版本:v1.00
*/
package com.upload;public class InputField{
private String inputName; //输入区名
private String inputContent; //输入内容public void setInputName(String inputName){
this.inputName = inputName;
}
public void setInputContent(String inputContent){
this.inputContent = inputContent;
}public String getInputName(){
return inputName;
}
public String getInputContent(){
return inputContent;
}
}
作者:王思龙
单位:东风汽车公司
版本:v1.00
*/
package com.upload;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.upload.UploadBean;
import com.upload.FileInfo;
import com.upload.InputField;public class ResultServlet extends HttpServlet {
static final private String CONTENT_TYPE = "text/html; charset=GBK";
UploadBean upload = new UploadBean();//Process the HTTP Get request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
result(request,out);
}private void result(HttpServletRequest request,PrintWriter out)
throws ServletException, IOException{
//以下演示说明调用方法
//请注意本页注释
//实例化 servlet 调用与以下方法相同
FileInfo fileInfo = new FileInfo();//设置单个文件长度上限值,参数为:long
upload.setSingleFileMaxSize(1024*1024*10);
//设置文件总长度上限值 参数为:long
upload.setTotalFilesMaxSize(1024*1024*100);
//设置上传文件数量上限值 参数为:int
upload.setTotalFilesMaxCount(10);//设置服务器端存放路径 参数为:string 请注意路径格式
//若不设置,将默认放在主页根目录下,以下是防于根目录下
String savePath = "c:/jsp1";
upload.setSavePath(savePath);//上载操作 参数为:request servlet中调用与此相同
upload.uploadFile(request);
out.print("<br><br><font face='黑体' size='5'><center>已成功上载" + upload.getUpFilesCount() + "个文件</center>");
out.print("<center>以下为所有上载请求的文件列表</font></center>");
out.print("<br><br>");
out.print("<div align='center'><table border=1 cellpadding=0 cellspacing=0 style='border-collapse: collapse' bordercolor='#111111' width='80%' >");
out.print("<tr><td>上载序号</td><td>上载请求名</td><td>文件名称</td><td>访问路径</td><td>文件大小(Byte)</td><td>是否成功</td></tr>");
int i;
//得到上载的文件数
int j = upload.getPageFileCount();
for(i=0;i<j;i++){
out.print("<tr>");
//得到文件信息前首先得到文件信息对象
//取得访问的文件对象upload.getUpFilesInfo(i) i为上载文件的序号
//对应类为 com.top.web.upload.FileInfo
fileInfo = upload.getUpFilesInfo(i);
//上载序号
out.print("<td>" + (new Integer(i).toString()+"") + "</td>");
//取得上载请求名
out.print("<td>" + fileInfo.getReqName() + "</td>");
//取得文件名称
out.print("<td>" + fileInfo.getFileName() + "</td>");
//取得文件访问路径
out.print("<td>" + fileInfo.getFilePath() + "</td>");
//取得文件大小
out.print("<td>" + fileInfo.getFileSize() + "</td>");
if(fileInfo.isSuccess())
out.print("<td>" + "是" + "</td>");
else
out.print("<td>" + "否" + "</td>");
out.print("</tr>");
}
out.print("</table></div><br>");//判断是否存在文件总长度溢出情况
if(upload.isTotalSizeOverFlow())
out.println("请检查您的上载文件,您准备上载的文件总长超过设置的上限!"+"<br>");
//判断是否存在文件数量溢出情况
if(upload.isTotalCountOverFlow())
out.println("请检查您的上载文件,您准备上载的文件数量超过设置的上限!"+"<br>");
//判断是否存在单个文件超长情况
if(upload.isSizeOverFlow())
out.println("请检查您的上载文件,您准备上载的某个文件超过单个文件长度的上限!"+"<br>");
//以下演示输入区的取值
//一、按输入区name取,推荐使用 请输入您需要取的内容
out.println("以下演示按输入区name取,推荐使用!"+"<br>");
out.println("您所输入的摘要内容为:");
out.println(upload.getParameter("explain1"));
out.println("<br><br>");
//以下演示按输入项的顺序号取,不推荐使用
out.println("以下演示按输入项的顺序号取,不推荐使用!"+"<br>");
out.println("您在以下输入区域输入的内容为:"+"<br>");
for(i=0;i<upload.getInputFieldCount();i++){
//取得输入区域的的指针对象
InputField inputField = new InputField();
inputField = upload.getInputField(i);
//取得输入区的name
out.println(inputField.getInputName()+":");
//取得输入区的内容
out.println(inputField.getInputContent()+"<br>");}
}
//Clean up resources
public void destroy() {
}
}
package com.upload;import java.io.*;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletInputStream;public class UpBean {public void doUpload(HttpServletRequest req)
throws ServletException, IOException{
//首先定义一个文本文件
File file = new File("out.txt");
//readCount 记录从输入流中实际读取的字符数
int readCount;
//输入流缓冲区
byte[] readByte = new byte[1024];
//初始化输入流
ServletInputStream servletInputStream = req.getInputStream();
//初始化一个输出流(到文件)
FileOutputStream fileOutputStream = new FileOutputStream(file);
//循环从读取输入流中读取字节
readCount = servletInputStream.readLine(readByte, 0,readByte.length);
while(readCount != -1){
fileOutputStream.write(readByte,0,readCount);
readCount = servletInputStream.readLine(readByte, 0, 1024);
}
//关闭文件流
fileOutputStream.flush();
}
}