asp.net如何上传文件(修改服务器来支持所有的文件格式)

来源:互联网 发布:淘宝号可以不实名认证 编辑:程序博客网 时间:2024/06/05 06:51

上传文件我们会用到FileUpload这个控件,我一般会在旁边加个上传按钮。看个人习惯。(加到最后的按钮事件上也是可以的)
本地运行成功但是上传到服务器运行地址错误的解决办法
两种,一种就是可自定义上传的文件名的(注意定义的文件名中不要有“\”符号,可能会引起路径错误的问题)

 FileUpload1.SaveAs(MapPath("File/" + tx2.Text +Path.GetExtension(FileUpload1.FileName)));

这个是保存到这个项目自创的File文件夹下。这个tx2可以自定义文件名字,但是类型不可修改。
;显示的话与这个相同

 lbl1.Text = "<a href=\"../你的项目名/File/" + lbl1.Text.Trim() + "\"target=\"_blank\"/>View</a>"

第二种 直接保存到项目下自己创建的jpg目录下,文件名不变。

FileUpload1.SaveAs(MapPath("jpg/" +FileUpload1.FileName));

显示如下既可,将label控件转换为链接。

lbl1.Text = "<a href=\"../jpg/" + lbl1.Text.Trim() + "\"target=\"_blank\"/>view</a>";

这2种地址的描述方法应该都可以解决一般的文件上传到服务器上的问题,如果你是想上传到其他地址就自行定义路径。

最后还有一个问题,就是如果服务器不支持你这个上传的文件格式,你会发现你可以上传到服务器,但是不允许你下载,你下载就会报错,比如我在这里遇到的就是.dwg文件(图纸文件)上传之后,服务器不支持下载,就会报错。想了好久,也问了好多人,还是感谢别人的解答,虽然也不是很懂,但大体思路可以说下,
服务器上不支持文件格式时
第一步 在服务器上运行一个文件,dwg.reg(备注dwg可以自定义,最好定义为文件类型好辨认,后面的.reg代表是注册表文件)文件内的内容为以下:

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.dwg]"PerceivedType"="dwg""Content Type"="application/x-dwg"@="dwgfile"

(不同的文件类型就修改对于的值,第二行的.dwg改为你要加的文件格式,第三五行的也直接改dwg为你要的文件格式就可以了,第四行要百度下,对应的Content Type的内容。)
运行完后再按如下操作
第二步 让IIS支持任意扩展名和未知扩展名的下载 1. 打开 IIS Microsoft 管理控制台 (MMC),右键单击本地计算机名称,然后单击“属性”。 2. 单击“MIME 类型”。 3. 单击“新建”。 4. 在“扩展名”框中,键入星号 (*)。 5. 在“MIME 类型”框中,键入 application/octet-stream。
如果只想支持一种添加的文件格式,就在第四步中写自己的文件类型如.dwg,第五步就键入 application/x-dwg就可以了。
这里面的第一步是不是必需的我也没有去验证,有权限的可以去尝试下。

原创粉丝点击