求救!!!在图片上传的程序中,本地(xp)调试好的程序正常,放到远程服务器(linux)无法正常运行。报:java.io.FileNotFoundException: C:\Documents and Settings\Administrator\桌面\2222.jpg (No such file or directory)
。 at com.servlet.AddGoods.doPost(AddGoods.java:100)
(下面红颜色的那行)主要代码:
String picturePath=request.getParameter("picturePath");
String path=this.getServletContext().getRealPath("/");
// 构造数据输入流对象
java.io.FileInputStream fis = new java.io.FileInputStream(picturePath);
java.io.DataInputStream dis = new java.io.DataInputStream(fis);
// 构造数据输出流对象
java.io.FileOutputStream outFile = new java.io.FileOutputStream(path+"images/"+picPath);
java.io.DataOutputStream outData = new java.io.DataOutputStream(outFile);
。 at com.servlet.AddGoods.doPost(AddGoods.java:100)
(下面红颜色的那行)主要代码:
String picturePath=request.getParameter("picturePath");
String path=this.getServletContext().getRealPath("/");
// 构造数据输入流对象
java.io.FileInputStream fis = new java.io.FileInputStream(picturePath);
java.io.DataInputStream dis = new java.io.DataInputStream(fis);
// 构造数据输出流对象
java.io.FileOutputStream outFile = new java.io.FileOutputStream(path+"images/"+picPath);
java.io.DataOutputStream outData = new java.io.DataOutputStream(outFile);
浏览器负责读取本地文件并传到服务器,服务器哪能去到客户机上开InputStream呢?
客户端用于上传的Form是这样的
<form method='POST' enctype='multipart/form-data' action='YourServlet'>
加了enctype='multipart/form-data' 取不到值,null
<form name="uploadForm" method="post" enctype="multipart/form-data">
<input id="fileUpload" name="fileUpload" type="file" class="edit_input" value="" />2 先将文件拷贝到服务器,然后取新地址
页面:
<form method='POST' enctype='multipart/form-data' action='UploadServlet'>
<input name="file1" type="file" />
<input name="upload" type="submit" value="上传" />
</form>UploadServlet: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream is = request.getInputStream();
OutputStream os = new FileOutputStream(new File("e:/sample.txt"));
byte[] b = new byte[request.getContentLength()];
is.read(b);
os.write(b);
os.close();
PrintWriter out = response.getWriter();
out.print("file uploading finished。");
}