jsp上传文件到服务器,部署到windows服务器上正常,部署到linux上通过windows访问失败,提示找不到文件

jsp上传文件到服务器,部署到windows服务器上正常,部署到linux上通过windows访问失败,提示找不到文件,第1张

首先,要确认你的文件服务器是用什么系统搭的,windows系统的话,在传入linux后是没有执行权限的文件,需要添加该文件的执行权限。没有理解你第一句话是什么意思,是部署jsp么。。然后上传文件的时候失败,还是说通过jsp所在服务器把上传的文件放到linux服务器中

提交页面表单
<form action="upjsp" enctype="multipart/form-data" method="post">
<input type="file" name="file">
<input type="submit" value="确定">
</form>
上传页面upjsp
<%@page import="javaioFileWriter"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="javaio"
pageEncoding="UTF-8"%>
<%
/
协议头四行内容
45 -----------------------------7de231211204c4
80 Content-Disposition: form-data; name="file"; filename="xxtxt"
26 Content-Type: text/plain
2
标记文件结尾
-----------------------------7de231211204c4--
/
ServletInputStream sin = requestgetInputStream();
byte[] buffer = new byte[1024 8];
int length = 0, row = 0;
String mark = "";
String filename = "";
while ((length = sinreadLine(buffer, 0, bufferlength)) > 0) {
outprintln(length + " " + new String(buffer, 0, length, "UTF-8") + "<br>");
String s = new String(buffer, 0, length, "UTF-8");
if (row == 0)
mark = strim();
else if (sindexOf("filename=") > 0) {
int end = slastIndexOf("\"");
int start = ssubstring(0, end)lastIndexOf("\"");
filename = ssubstring(start + 1, end);
} else if (""equals(strim()))
break;
row ++;
}

outprintln("filename: " + filename + "<br>");
filename = requestgetRealPath("/") + "/" + filename;
FileOutputStream fout = new FileOutputStream(filename);
while ((length = sinreadLine(buffer, 0, bufferlength)) > 0) {
String s = new String(buffer, 0, length);
if (sstartsWith(mark))
break;
foutwrite(buffer, 0, length);
}
foutflush();
foutclose();
File f = new File(filename);
outprintln(fexists());
outprintln(fgetAbsolutePath());
%>

用smartupload 控件来完成 你百度下一大堆的例子,算了我帮你百度,不然你分不给我,要记的给我呀,至于保存在数据库中,你可以用年月日时分秒这样的格式生成一个文件存放目录,将的路径保存到数据库中
<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312"%>
<%@ page language="java" import="javaio"%>
<%@ page language="java" import="comjspsmartupload"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN">
<html>
<head>
<meta >你虽然问得很简单,但是做过相关项目的人都是知道这个问题比较复杂,为什么一定要用form表单上传,这是因为文件上传必须要通过以下步骤。
1、客户端和服务器建立连接。
2、客户端可以向服务器端发送数据。因为上传文件实质上也是向服务器端发送请求。
3、客户端按照符合“multipart/form-data”的格式向服务器端发送数据。
注意,客户端要向服务器发送的请求是“multipart/form-data””格式的数据,Multipart/form-data格式就是浏览器用表单提交数据的格式。
你不用表单如何实现这个格式?
如果不想用表单可以推荐你几种方法。
1、动态创建表单,这个方法不影响你的页面布局,可以通过d出<div>嵌入<form>实现或者使用隐藏的<form>来实现。一般都推荐这个方法。
2、用ajaxFileUpload组件或其他组件,异步上传,原理也是动态创建表单。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10220718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存