Asp.net通过uploadify将文件上传到B服务器的共享文件夹中

写在前面

客户有这样的一个需求,针对项目中文档共享的模块,客户提出如果用户上传特别的大,或者时间久了硬盘空间就会吃满,能不能将这些文件上传到其他的服务器?然后就稍微研究了下这方面的东西,上传到网络中的某个共享的文件夹下确实能做到的。

解决方案

环境描述:

若A为web服务器,B为要存放文档的文件服务器。

如果通过A中的某个页面将文件上传到服务器B,则需要如下三个步骤。

1、在服务器B上面建立共享文件夹,步骤如下:

Asp.net通过uploadify将文件上传到B服务器的共享文件夹中

Asp.net通过uploadify将文件上传到B服务器的共享文件夹中

Asp.net通过uploadify将文件上传到B服务器的共享文件夹中

编辑贡献文件夹的权限,添加一个用户,并给它开放读写的权限。

Asp.net通过uploadify将文件上传到B服务器的共享文件夹中

Asp.net通过uploadify将文件上传到B服务器的共享文件夹中

2.共享文件夹建立之后,假如文件服务器B的IP地址为:192.168.83.123,可通过运行访问该文件夹是否共享成功。

Asp.net通过uploadify将文件上传到B服务器的共享文件夹中

3、简单测试,可以使用Uploadify进行上传测试。

关于uploadify的使用就不再做介绍了

修改UploadHander.ashx一般处理程序,核心代码如下:

 1   /// <summary>
 2         /// 处理请求的方法
 3         /// </summary>
 4         /// <param name="context">http上下文</param>
 5         public void ProcessRequest(HttpContext context)
 6         {
 7             //获取或设置输出流的HTTP MIME类型
 8             context.Response.ContentType = "text/plain";
 9             //获取上传的文件
10             HttpPostedFile httpPostedFile = context.Request.Files["Filedata"];
11             //如果接收到文件则httpPostedFile不为null,则对上传的文件进行处理,否则向客户端返回0
12             if (httpPostedFile != null)
13             {
14 
15                 //获取文件名
16                 string strfileName = httpPostedFile.FileName;
17 
18                 //获取扩展名
19                 string strExt = Path.GetExtension(strfileName);
20 
21                 //允许上传的文件类型
22                 string[] strExts = { ".jpg", ".png", ".gif", ".zip", ".rar" };
23 
24                 //如果上传的文件类型,在被允许的类型中,则保存,否则向客户端输出“不允许上传”的信息提示。
25                 if (strExts.Contains(strExt))
26                 {
27                     //上传目录
28                     DirectoryInfo theFolder = new DirectoryInfo(@"\\192.168.83.123\upload\");    
29                     //定义新的文件名,格式:“201404210323146909_文件名.zip”
30                     string strNewName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + "_" + strfileName;
31                     string path = Path.Combine(theFolder.FullName, strNewName);
32                     //保存文件到文件服务器
33                     httpPostedFile.SaveAs(path);
34                     //将文件的保存的相对路径输出到客户端
35                     context.Response.Write(path);
36                 }
37                 else
38                 {
39                     context.Response.Write("不允许上传");
40                 }
41             }
42             else
43             {
44                 //没有文件,向客户端输出0
45                 context.Response.Write("0");
46             }
47         }

 4、在全局处理程序Global.asax.cs中添加如下代码,应用程序启动时,创建访问文件服务器B的凭证。

核心代码如下:

1   protected void Application_Start(object sender, EventArgs e)
2         {
3             //System.Diagnostics.Process.Start("net.exe", "use \\\\B服务器的IP\\共享文件夹 \"B服务器上的密码\" /user:\"B服务器上的用户名\""), 
4             System.Diagnostics.Process.Start("net.exe", "use \\\\192.168.83.123\\upload \"123456\" /user:\"xxxdev\\dev\"");
5         }

这就话的意思是,在应用程序已启动的时候,就为访问B服务器提供凭证。

将网站部署到iis上,如果发现上传不成功,可尝试为共享文件夹添加Everyone,并给与完全控制权限。

总结

文件共享也可参照:http://www.cnblogs.com/yunspider/p/5033439.html

原文:http://www.cnblogs.com/wolf-sun/p/4198238.html

更多相关文章
  • 因为要在一个asp.net mvc应用程序中用到一个富文本编辑器,需要后台上传文件或图片,所以动手写了一个.我也曾经想通过Ajax来实现,看来确实有一定的难度.参考了以下文档:A.实现一个Ajax模式的文件上传有多难? B.ASP.NET MVC 檔案上傳下載是很方便的如果你也有这样的需求,你不妨直 ...
  • web.config配置<add name="连接字符串" connectionString="data source=服务器名;Initial Catalog=数据库;Persist Security Info=True;User ID=用户名;Password ...
  • ******作者语:这个控件很早就写了,但一直没有去完善*****************************现在重新整理了一次,应该方便了许多,希望大家多多提意见********* ******该版本支持ASPNET1.0.2.0 ************************支持多个大文件 ...
  • 该示例中实际上应用了 jquery ajax(web client) + async web api 双异步. jquery ajax post 1 $.ajax({ 2 type: "POST", 3 url: "/api/FileUpload", 4 co ...
  • [PHP文件上传] 在开始之前,我觉得是有必要把通WEB上传文件的原理简单说一下的.实际上,在这里不管是PHP,JSP,还是ASP处理上传的文件,其实都是WEB早已把文件上传到服务器了,我们只是运用上传处理函数来处理上传的文件.而处理函数一般都是用PHP,JSP,ASP等服务端语言来实现的.那么如何 ...
  • 找了很多的资料,学到了不少有用的东西,最简单的实现就是使用FileUpload控件.using System;namespace UpFile { /// /// upfile 的摘要说明./// public class upfile{  private string path = null;  ...
  • 本文介绍jQuery的一个插件uploadify,现在的版本支持两种实现.一个是flash,一个是HTML5.本文介绍的是flash版本的.uploadify的官网uploadify介绍 uploadify是一个jQuery插件,让程序员很容易就实现多文件的上传功能.有两种不同的版本,一个是flas ...
  • 原创用JAVA实现大文件上传及显示进度信息
    用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议  (本文提供全部源码下载,请访问 https://github.com/grayprince/UploadBigFile) 一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负 ...
一周排行
  • 学习资源来自:www.magedu.com学习记录过程中难免出现错误,如有发现,还望大神们指出.示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行.示例仅供参考基础知识: ...
  • ----------------------------------- 背景 所有的事情要追溯到1992年选秀大会之前,前一个赛季战绩最差的球队是森林狼,他们有最大的几率获得状元签.很显然,Shaq并不想去寒冷的明尼 ...
  • 今天,将一台win7系统的电脑退出域并将其域用户的配置文件删除,重新加入域后,用该域账号登陆后,提示“您已经使用临时配置文件登陆*****logoff或restart后保存在桌面的文件将丢失”.解决方法:1.右击-计 ...
  • <枪姬>的主题曲,<angel beats>的片段,配上超级正能量的歌词.啊~~真希望我当年高考的时候也有这么激励的歌曲~~~~~
  • 在 linux 下卸载 oracle10g 如果需要在 linux 下卸载 oracle 10g, 可以采用下面的步骤:(注: 在RHEL3, oracle10.1.0下测试通过)1. 运行 $ORACLE_HOME ...
  • 这是我在豆瓣所写关于第三次浪潮的评论   我是自己在做网络社区方面的研究过程中,从IT界人士的文章里面看到社会学家们关于社区等方面研究文章得知这本书的. (引用的文章叫做<犹太未来学家托夫勒及其乐观主义未来学思 ...
  • 1.在新服务器上部署环境 yum -y install subversion 2.备份原服务器数据仓库 svnadmin dump /home/myrepos >/data/svn_dump svnadmin ...
  • 这是分开章节的版本,追更阅读的朋友可以从这个地址下载标题所示的更新章节 没有阅读的过朋友还请请下载置顶的完整版,从头阅读. 下载地址:http://pan.baidu.com/s/1pJ5RlGJ
  • 第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中 我的电脑-->右键-->管理-->本地用户和组 选择“组”-->双击Adminis ...
  • Quartz2D提供了两种渐变填充方法.第一种是使用Quartz自带的Gradient填充方法:第二种是使用自定义的着色器. 这里将先描述如何使用CGGradient对象来做渐变填充. CGContextRef co ...