2 sinat 32688815 sinat_32688815 于 2016.02.18 09:33 提问

java文件上传问题,本人新手,望各位大神帮忙 5C

我这边想要用户登录部署网站,上传一个excel,我得到用户文件的绝对路径,然后把这个绝对路径通过location.href 带参 传到了另一个jsp上进行读写,复制到服务器下。遇到问题就是,服务器读写是总把这个绝对路径当成自己本地的,读不到用户电脑下文件。

5个回答

sinat_31535993
sinat_31535993   Rxr 2016.02.18 09:39

绝对路径当然是指向本地的啦,服务器是不可能进入用户电脑中复制文件的。你应该把文件上传到服务器中

sinat_32688815
sinat_32688815 弱弱问问,怎么把文件上传服务器下某个文件夹?上传不需要读取?
接近 2 年之前 回复
qq_18748427
qq_18748427   2016.02.18 10:05

上传的话有专门的表单,type="file",form的属性enctype="multipart/form-data"加上
这样在后台就能获得文件了。

sinat_32688815
sinat_32688815 回复会飞的锅: 我好像明白了,只是把文件的路径提交到另外一个jsp,是没办法得到文件的,form表单提交的是流
接近 2 年之前 回复
qq_18748427
qq_18748427 用表单提交的好处是会自动封装文件的所有属性,包括文件名、文件内容等等,你要做onclick的话可以写成提交表单,一样的效果
接近 2 年之前 回复
sinat_32688815
sinat_32688815 是不是这个路径传给另外一个jsp上,是读不到的??
接近 2 年之前 回复
sinat_32688815
sinat_32688815 我想请问,form表单里我是用onclick事件,然后把file通过document.getElementId("file").value 得到路径
接近 2 年之前 回复
xionglangs
xionglangs   Rxr 2016.02.18 12:10

本地伤处图片、文件,别的电脑进行读取的流程是:本地上传文件到服务器,要修改文件名称,这个名称最好是通过时间生成,这样就不会照成文件的覆盖。这个网上有代码,在服务器上传的文件有个地址,地址要完全不同,这是最好通过时间创建文件夹,文件名,把它存入对应的实体,别的地方要操作这个文件就是通过这个实体类的地址属性获取这个文件,下载出来就可以了。

xionglangs
xionglangs 是啊,提交到服务器。
接近 2 年之前 回复
sinat_32688815
sinat_32688815 我一直困惑的地方是:不通过form表单提交,只是得到路径传过去是无法传递文件。要通过form提交,以流的形式传过去才可以读取文件
接近 2 年之前 回复
u010363836
u010363836   2016.02.18 18:44

1、还是用form提交吧,js虽然角色越来越重要了,但是安全问题依然是第一位,如果js能随便上传文件,那谁恶意写个网站,扫描客户机器的文件 恶意上传,客户岂不是很没安全感?js上传不受支持。
2、一般的异步上传文件的方法是:是通过iframe先上传了文件到服务器,再获取到服务器文件的链接。
一句话讲晒:用form提交enctype="multipart/form-data"

qq_20039385
qq_20039385   2016.02.19 10:40

本地路径服务器怎么可以访问呢??你要把文件写成流,服务器获取文件流,再将文件或图片保存到服务器。

Csdn user default icon
上传中...
上传图片
插入图片