写在前面

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

解决方案

环境描述:

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

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

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

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

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

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

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

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

   /// <summary>
/// 处理请求的方法
/// </summary>
/// <param name="context">http上下文</param>
public void ProcessRequest(HttpContext context)
{
//获取或设置输出流的HTTP MIME类型
context.Response.ContentType = "text/plain";
//获取上传的文件
HttpPostedFile httpPostedFile = context.Request.Files["Filedata"];
//如果接收到文件则httpPostedFile不为null,则对上传的文件进行处理,否则向客户端返回0
if (httpPostedFile != null)
{ //获取文件名
string strfileName = httpPostedFile.FileName; //获取扩展名
string strExt = Path.GetExtension(strfileName); //允许上传的文件类型
string[] strExts = { ".jpg", ".png", ".gif", ".zip", ".rar" }; //如果上传的文件类型,在被允许的类型中,则保存,否则向客户端输出“不允许上传”的信息提示。
if (strExts.Contains(strExt))
{
//上传目录
DirectoryInfo theFolder = new DirectoryInfo(@"\\192.168.83.123\upload\");
//定义新的文件名,格式:“201404210323146909_文件名.zip”
string strNewName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + "_" + strfileName;
string path = Path.Combine(theFolder.FullName, strNewName);
//保存文件到文件服务器
httpPostedFile.SaveAs(path);
//将文件的保存的相对路径输出到客户端
context.Response.Write(path);
}
else
{
context.Response.Write("不允许上传");
}
}
else
{
//没有文件,向客户端输出0
context.Response.Write("");
}
}

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

核心代码如下:

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

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

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

总结

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

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

[Asp.net]通过uploadify将文件上传到B服务器的共享文件夹中的更多相关文章

  1. Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)

    Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...

  2. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传

    原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...

  3. uploadify多文件上传实例--C#

    下载uploadify文件 http://www.uploadify.com/ HTML(视图) <html lang="zh-cn"> <head> &l ...

  4. Uploadify多文件上传插件.NET使用案例+PHP使用案例

    ploadify是一个非常好用的多文件上传插件 插件下载:http://www.uploadify.com 下载后需要用到的文件: 接下来就是直接添加代码: Default.aspx代码 <%@ ...

  5. Ueditor 前后端分离实现文件上传到独立服务器

    关于Ueditor 前后端分离实现文件上传到独立服务器,在网上搜索确实遇到大坑,不过还好遇到了 虚若影 最终实现了,在此感谢!虚若影的原文博客网址:http://www.cnblogs.com/hpn ...

  6. linux下将文件上传到svn服务器

    linux下将文件上传到svn服务器 摘自:https://blog.csdn.net/sky_yangge/article/details/41544773 2014年11月27日 16:47:57 ...

  7. 将windows下的文件上传到Linux服务器上

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lx_Frolf/article/deta ...

  8. ASP.NET MVC下使用文件上传

    这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新 ...

  9. FCKeditor插件开发实例:uploadify多文件上传插件

    FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器.它志于轻量化,不需要太复杂的安装步骤即可使用.它可和PHP.JavaScript.ASP.ASP.NET.ColdFusi ...

随机推荐

  1. 由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——理论篇

    工作两年多了,我会经常尝试给公司小伙伴儿们解决一些问题,几个月下来我发现初入公司的小朋友最爱问的问题就三个 1. 我想前台调用后台的XXX方法怎么弄啊? 2. 我想后台调用前台的XXX JavaScr ...

  2. [HIMCM暑期班]第1课:概述

    作为这个系列的开始,我会把每一节课上过的内容,与同学们互动后发现他们的闪光点记录下来,以后其他要准备该比赛的人借鉴和参考. 第一节课是概述,主要讲什么是数学建模,还有建模可以帮助我们做什么.举了三个例 ...

  3. Mybatis入门例子

    Mybatis是轻量级的持久化框架,的确上手非常快. Mybatis大体上的思路就是由一个总的config文件配置全局的信息,比如mysql连接信息等.然后再mapper中指定查询的sql,以及参数和 ...

  4. Linux下chkconfig命令详解 这个简单明了啊

    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...

  5. ngResource提交json数据如何带参数

    ngResource提交json数据如何带参数 直接使用ngResource和REST服务接口交互可以让程序显得简洁,前提是配置好跨域和OPTIONS请求的支持,与此同时,如果需要带些额外的参数,有两 ...

  6. eclipse导入cordova创建的项目

    eclipse导入cordova创建的项目 看图不说话 run这个MainActivity就可以了,bin目录下会生成APK

  7. Python之函数与变量

    本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...

  8. POJ1014 解题报告(DFS)

    题目在此:http://poj.org/problem?id=1014 要看清题意呢,题中要求输入的是价值分别为1,2,3,4,5,6的大理石的个数,而不是6块价值为输入数字的大理石!选这个题主要想练 ...

  9. AngularJS快速入门01-基础

    记得第一次听说AngularJS这项很赞的Web的前端技术,那时还是2014年,年中时我们我的一个大牛兄弟当时去面试时,被问到了是否熟悉该技术,当时他了解和使用的技术比较多.我们询问他面试情况时,他给 ...

  10. Android之自动文本输入识别提示

    相信大家都熟悉自动识别提示吧,在我们的生活中随处可见,今天就让我为大家简单介绍一下它是如何设计的. 所谓自动识别输入即是根据用户输入的已有信息,为用户提示可能的值,方便用户完成输入.在Android设 ...