1 public ActionResult UploadFile() 2 { 3 HttpFileCollectionBase files = Request.Files; ]; 5 if (file != null && file.ContentLength > 0) 6 { 7 string fileName = file.FileName; , StringComparison.Ordinal) > -1) 9 { , StringComparison.Ordinal) + 1); 11 } 12 string path = Server.MapPath(Common.DataDir); { 15 file.SaveAs(path + fileName); ; 17 } 18 catch (Exception e) 19 { 20 throw e; 21 } 22 } , ); 24 }
下载:
1 function DownloadFile(row) { + encodeURI(row.FullName), 3 function (result) { 4 location.href = result; 5 }); 6 } DownloadFile(string filePath, string sessionID) 9 { ); ).Replace(, ); 12 return result; 13 }
注意:在线阅览中,细心的朋友可能已经注意到了我的代码中有一个sessionID,每次阅览文件都会创建一个名为sessionID的文件夹,我想这一定不是大家所期望的,那用意何在在呢?实际上同一个文件我们只需要一次生成HTML文件就可以了,无需每次阅览都都重复生成这些文件。实际项目中,我们期望每上传一个文件就创建一个唯一的标示,这个标示跟对应文件之间建立某种关系,在线阅览的时候就根据这个唯一标识创建对应的HTML文件就可以了,这样,同一个文件在下一次阅览的时候先根据这个标示去检查对应的HTML文件是否存在,如果存在直接阅览就OK了,如果不存在,则先创建HTML文件,再进行阅览,另外时间比较仓促,本文的demo考虑不周,测试不足,可能有些小小的bug,大家在用的时候自行完善。
一般这样的需求,比较完善一点就需要有文件上传,在线阅览,文件下载,文件删除,在线编辑等功能,前面几个功能也算是有比较完善的解决方案了,最后一个在线编辑还没有合适的解决方案,如果哪位朋友在web在线编辑方面有比较好的解决方案,请告诉我一下,接下来会花一定时间研究一下web在线编辑,可视化等,还望大家多多支持,有新的成果一定第一时间与大家分享。
最后,上一篇中给大家承诺过的web在线打印的干货,这里一并奉上,因为文件太大,这里无法上传,所以,干货就发到群共享,有需要的朋友在群里下载,也可以给我留言索要。
应用程序框架交流QQ群1:386092459(已满) 应用程序框架交流QQ群2:376124781