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

写在前面

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

解决方案

环境描述:

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

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

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

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

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

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

时间: 2024-08-07 17:01:38

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

uploadify多文件上传插件

这个插件是兼容IE8及以上版本的,实现了基本功能,底部有下载连接 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>uploadify多文件上传插件使用</title> <meta http-equ

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

Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achieve a user-friendly file-uploading experience over the web. It's built as a Javascript plugin for developers looking to incorporate file-uploading int

Struts2 + uploadify 多文件上传完整实例!

首先我这里使用的是  Jquery  Uploadify3.2的版本  导入相关的CSS  JS    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/uploadify/uploadify.css"> <script src="<%=basePath%>js/jquery.min.js"></sc

本地文件上传到Linux服务器的几种方法

本文介绍几种常见的方法,把文件上传到Linux服务器中! 常见有使用:scp命令.xshell软件里的xftp程序.U盘挂载.服务器自带的lrzsz程序. 一.scp使用说明: 1.把本机的文件传给目的服务器: scp get66.pcap [email protected]:/super 备注:把本机get66.pcap拷贝到147这台服务器的super目录下,需要提供147的密码 2.在本机上执行scp,把远端的服务器文件拷贝到本机上: scp [email protected]:/supe

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

关于Ueditor 前后端分离实现文件上传到独立服务器,在网上搜索确实遇到大坑,不过还好遇到了 虚若影 最终实现了,在此感谢!虚若影的原文博客网址:http://www.cnblogs.com/hpnet/p/6290452.html 具体项目:如下截图 1.在本地IIS 中添加网站 ueditorweb.com .ueditortest.com . testweb (注意应用程序池要选择.net的版本) 2.hosts文件中添加 127.0.0.1  ueditorweb.com  uedit

Android使用HttpClient实现文件上传到PHP服务器,并监控进度条

上传 服务器端PHP 代码如下 : <?php $target_path = "./tmp/";//接收文件目录 $target_path = $target_path.($_FILES['file']['name']); $target_path = iconv("UTF-8","gb2312", $target_path); if(move_uploaded_file($_FILES['file']['tmp_name'], $targ

架设用Webservice实现文件上传功能CentOS服务器(二)--WebService

功能概述,看代码中注释应该可以理解 为了文件安全对url进行适当的保护处理 简单的配置功能,如文件大小限制,文件存放位置设定等 返回文件内容方法还需完善 代码: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDate

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

linux下将文件上传到svn服务器 摘自:https://blog.csdn.net/sky_yangge/article/details/41544773 2014年11月27日 16:47:57 sky样 阅读数 7526 1.首先将svn的所指定的目录checkout到本地目录下: 使用svn co +服务器的地址(path),输入服务器的密码即可,此时会自动在本地目录下同步服务器你所指定的目录及里面所有的文件(其中co 即是 checkout的简写) 例如:svn co hettp:/

ASP.NET MVC下使用文件上传

这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新文件夹Uploads,然后新建控制器UploadifyController.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using S