用java的inputstream和outputstream做网页的文件上传

用java的inputstream和outputstream做网页的文件上传,第1张

你可以这样理解:

fileinputstream

in

=

new

fileinputstream("e:\\a.zip")

fileinputstream

顾名思义,就是写入。这句启槐拦话将a.zip做编码后放到in,要用a.zip的时候就使用in读出来悄胡。

fileoutputstream

os

=

new

fileoutputstream("e:\\b.zip")

fileoutputstream顾名思义,就是读出,读出的话明丛就要指定读出的目的地,e:\\b.zip便是目的地。

while(in.read(bt)

!=

-1)

{

os.write(bt)

}

这段代码就是从in中读出编码后的文件内容,然后通过os写入b.zip.

1、你要保存的文件名已存在,而未设置savetofile方法的覆盖属性。

2、路径没有用server.MapPath()映射,这种情况下:

如果路径为绝对路径,则发生上面的问题:写入文件失败。

如果路径为相对路径,则会保存到相对于:c:\\windows\\system32的路径。(本机测试结果)。

3、和错误 '80070070'培袭 一样,空间不足, 引起这个800a0bbc错误。

4、服务器目录不支持写入,或者需要写入的目录不存在 。

在使用化境的上传组件,友中世若网站在服务器的根目录,通常是不会遇到此类问题的,遇到此问题往往是网站是以二级目录方式存放在服务器IIS内,化境的上传路径默认是根目录,因此必须修改化境的上传保存文件的路径,也就是提示出错的ASP网页ManageAddSave.asp→我的出错网页名),而不是提示 “dr.SaveToFile FullPath,2”写入出错所在的文件(UpFile.inc.inc→我的化境无组件上传文件名),将提示出错的网页打开,修改上传文件保存路径 “formPath="/UploadFile/NewsFile"'得到上传目录”,如:你的网站存放的二级目录为‘web2’,路径则改为: “formPath="/web2/UploadFile/NewsFile"'得到上传目录”,至此,问题解决上传成功!

5、老问题有出现,这次的原因是上传的过程中,server.mappath 中上传目录前不能加“/”,原来是 “/upload/11111”改为 "upload/1111"

6、2009年6月12日调试ll上机考试,又好肢出现这个错误,总结原因是上传目录formpath为“test/upload/”,因为本次虚拟目录设置为test路径,所以相应修改:

upfile.asp

1) formpath=“test/upload/”,-->formpath=upload/"

2) if fso.FolderExists("e:/jiaoling-zuoye/javatest/test/upload/"&session("CurUserId"))=false then

fso.CreateFolder("e:/jiaoling-zuoye/javatest/test//upload/"&session("CurUserId"))

end if

需要设置文件上传的方式,即调用ftpclient的方法setfiletype(),并传入参数FTP.BINARY_FILE_TYPE,如下是FTPClient的API中关于这个方法中参数的说明原文:

Sets the file type to be transferred. This should be one of FTP.ASCII_FILE_TYPE , FTP.BINARY_FILE_TYPE, etc. The file type only needs to be set when you want to change the type. After changing it, the new type stays in effect until you change it again. The default file type is FTP.ASCII_FILE_TYPE if this method is never called.

意思是ftp文件上传时,需要指定filetype,并且是茄桐FTP.ASCII_FILE_TYPE , FTP.BINARY_FILE_TYPE两个中其中一个,如果不设置(如果不调用setFileType方法),则默认的文件上传方式是FTP.ASCII_FILE_TYPE。

往往当上传到服务器时的文件是0KB时,问题就在这个默认值上,这也跟FTP服务器的设置有关系(猜测是与FTP服务器的安全方面的设置相关颤消坦),只需要调用一下setFileType方法并指定参数为FTP.BINARY_FILE_TYPE就桥闭可以了


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

原文地址: https://outofmemory.cn/tougao/8194863.html

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

发表评论

登录后才能评论

评论列表(0条)

保存