.net fileupload上传到项目的Excel破损 本帖最后由 XiaoPeiyuan2020 于 2014-10-17 11:01:23 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很感谢你的回答,本地的文件时可以正常打开的,上传到项目的那个文件打开提示破损或者是只读的,所以可能就导致Sheet1 没有办法访问,关键是fileupload 上传的文件不知道为什么会破损啊 TransformData里代码是什么?其实执行 string phyFileName = Path + @"\" + FileUpload1.FileName; this.FileUpload1.SaveAs(phyFileName);这个就行了,指定一个路径,然后SaveAs 你必须先save到服务器本地,然后从服务器本地再读出来啊不能直接把FileUpload1.FileName当本地路径去读excel,这个文件还在客户机里呢,你能直接读到才怪 2帖齐发?看了你的需求 我只能说 3个东西 一个一个来 别着急..1` 先会使用fileupload上传文件.. (当然这虽然只有2句话,但是你还是要学下.因为你基础很弱)2`使用组件(npoi)读取xls(xlsx)到内存中并显示到GridView上,(当然你也可以使用office组件.但是个人是不建议的)3`ado.net 也就是连接数据库增删改查.当然你这里面的导入只涉及到插, 所以你还是应该看下如何循环DataTable生成很多SQL语句一起执行.上面的都玩明白了之后 在考虑导入如何优化(sqlbulkcopy) 数据有问题是否需要事务(tran)别老考虑一步登天..或者拿来主义(岂止是拿来简直就是给你工作) 这个我在本地测试 也还是不行,还是上传的Excel 有破损 很感谢你的回答,本地的文件时可以正常打开的,上传到项目的那个文件打开提示破损或者是只读的,所以可能就导致Sheet1 没有办法访问,关键是fileupload 上传的文件不知道为什么会破损啊如果你想确定是否是“上传到服务器的文件破损”了,就应该直接把服务器端保存的文件给拷贝到“本地”然后手工使用excel打开测试。不要使用你的程序去打开excel!否则你根本不知道是文件破损了,还是你的打开程序有问题。 看了一下你贴出的程序代码。你在服务器端不过是取得了文件名字,然后再服务器本地读取文件。你何时读取了客户端传来的文件了?你的上传文件程序本身就是错的,就不能读取web远程客户端的文件。先学习一个正确的“上传文件”程序编写再说吧。你应该做一个测试,使用另一台机器远程访问网站,然后上传一个客户端有、但是服务器没有的excel工作簿文件。看看你的程序的bug。先写好的上传程序,你的问题自然就改变了。 目前你的问题是,你把客户端的路径当做服务器的路径来读文件而且恰好你的服务器也有客户端选择的路径你到里面去找,恰好也找到了一个同名的excel文件,而这个文件是破损的你应该先确定,你上传文件到底上传成功了吗?从你的代码来看,你根本没有上传文件,只不过获取到了客户端的文件路径,然后就把这个路径当做服务器路径去取文件了 仔细看了下代码,在string path = Server.Map("~")。这一句之后请,加上FileUpload1.SaveAs(path);基本就可以正常运行。 关于层的布局问题 关于 socket 监听 的问题..............(仿照smsniff) if和while的混乱 权限分配问题 关于使用SmartClient智能客户端打包的问题 前面提了,好久没有人回答,字符问题 哪里可以下到VS2008帮助文件 C#的winform如何实现打印超市类的小票?(打印机是热敏式打印机 再线等。) 如何利用C#在IE中得到鼠标的位置 求教:如何利用从xml中读取的属性值定义变量 求正则表达式 用xamarin开发android程序,可以用类库中的哪些东西?
很感谢你的回答,本地的文件时可以正常打开的,上传到项目的那个文件打开提示破损或者是只读的,所以可能就导致Sheet1 没有办法访问,关键是fileupload 上传的文件不知道为什么会破损啊
其实执行
string phyFileName = Path + @"\" + FileUpload1.FileName;
this.FileUpload1.SaveAs(phyFileName);
这个就行了,指定一个路径,然后SaveAs
不能直接把FileUpload1.FileName当本地路径去读excel,这个文件还在客户机里呢,你能直接读到才怪
所以你还是应该看下如何循环DataTable生成很多SQL语句一起执行.上面的都玩明白了之后 在考虑导入如何优化(sqlbulkcopy) 数据有问题是否需要事务(tran)别老考虑一步登天..或者拿来主义(岂止是拿来简直就是给你工作)
这个我在本地测试 也还是不行,还是上传的Excel 有破损
很感谢你的回答,本地的文件时可以正常打开的,上传到项目的那个文件打开提示破损或者是只读的,所以可能就导致Sheet1 没有办法访问,关键是fileupload 上传的文件不知道为什么会破损啊如果你想确定是否是“上传到服务器的文件破损”了,就应该直接把服务器端保存的文件给拷贝到“本地”然后手工使用excel打开测试。不要使用你的程序去打开excel!否则你根本不知道是文件破损了,还是你的打开程序有问题。
看了一下你贴出的程序代码。你在服务器端不过是取得了文件名字,然后再服务器本地读取文件。你何时读取了客户端传来的文件了?你的上传文件程序本身就是错的,就不能读取web远程客户端的文件。先学习一个正确的“上传文件”程序编写再说吧。你应该做一个测试,使用另一台机器远程访问网站,然后上传一个客户端有、但是服务器没有的excel工作簿文件。看看你的程序的bug。先写好的上传程序,你的问题自然就改变了。
而且恰好你的服务器也有客户端选择的路径
你到里面去找,恰好也找到了一个同名的excel文件,而这个文件是破损的
你应该先确定,你上传文件到底上传成功了吗?
从你的代码来看,你根本没有上传文件,只不过获取到了客户端的文件路径,然后就把这个路径当做服务器路径去取文件了
这一句之后请,加上FileUpload1.SaveAs(path);
基本就可以正常运行。