日期:2014-05-20  浏览次数:21069 次

网站发布到IIS后,能上传文件到服务器上,但不能读到上传的文件的路劲?


我做了一个上传Excel 并保存到数据库的网站。
在本地调试一切正常。

当我把网站挂在IIS上的时候 ,出了一个很大的问题。


就是 用户能把Excel正常的上传到服务器上。
这个代码我是这样写的 

//设置用户上传Excel到服务器上的文件夹路径
path = Server.MapPath("~/content/Excel/") + Guid.NewGuid().ToString() + ".xls";
//保存Excel
this.UploadExcel.PostedFile.SaveAs(path);

然后 这段代码能正常的保存用户上传的Excel到服务器上 


 然后 我用一个方法 
//把Excel转换成Dataset  
//参数为用户保存的Excel在服务器上的路劲
 GetExcelDataSet(string path)

然后 我用刚刚 保存用户上传Excel到服务器上的文件夹路径 做为这个方法的参数。也就是
path = Server.MapPath("~/content/Excel/") + Guid.NewGuid().ToString() + ".xls"; 这个路劲

然后问题出现了 
这个写法 我在本地用100%没有问题

但是挂在IIS上
 
 GetExcelDataSet(string path) 这个方法 始终得不到 path 这个路劲

这个是为什么呢?
问题已经很明确 是得到的路劲的问题 

但是应该怎么解决呢?



------解决方案--------------------
探讨
关注,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

------解决方案--------------------
Guid.NewGuid().ToString() 每次得到的值是不一样的。
要用一个变量存起来
string strGUID = Guid.NewGuid().ToString();
path = Server.MapPath("~/content/Excel/") + strGUID + ".xls";
this.UploadExcel.PostedFile.SaveAs(path);

读取的时候不要再用Guid.NewGuid().ToString() ,因为没调用一次都是一个新的GUID。
这个时候用之前保存起来的strGUID 变量拿到之前的值。
path = Server.MapPath("~/content/Excel/") +strGUID + ".xls";
GetExcelDataSet(path)