文件写入文件分布式系统(asp.net C#)
public JsonResult HandleImgUpload(User user, System.Web.HttpPostedFileBase fileData, long shopId = )
{
try
{
System.Drawing.Image img = System.Drawing.Image.FromStream(fileData.InputStream);
if (img.Height <= && img.Width <= )
{
// 设置参数
HttpWebRequest request = WebRequest.Create(Settings.GetSettingByKey("uploadUrl_img") + user.UserID) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST"; string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");
byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); //请求头部信息
StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileData.FileName));
byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString()); byte[] bytes = new byte[fileData.InputStream.Length];
fileData.InputStream.Seek(, SeekOrigin.Begin);
fileData.InputStream.Read(bytes, , bytes.Length); Stream postStream = request.GetRequestStream();
postStream.Write(itemBoundaryBytes, , itemBoundaryBytes.Length);
postStream.Write(postHeaderBytes, , postHeaderBytes.Length);
postStream.Write(bytes, , bytes.Length);
postStream.Write(endBoundaryBytes, , endBoundaryBytes.Length);
postStream.Close();
//发送请求并获取相应回应数据
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
Stream instream = response.GetResponseStream();
StreamReader sr = new StreamReader(instream, Encoding.UTF8);
//返回结果网页(html)代码
string content = sr.ReadToEnd();
var info = Newtonsoft.Json.JsonConvert.DeserializeObject<UploadFileResult>(content); if (info.Result == && info.Info != null)
{
return Json(new { error = , url = info.Info.Url }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { error = , message = info.Msg }, JsonRequestBehavior.AllowGet);
}
}
else
{
return Json(new { error = , message = "文件尺寸超过限制(高:800,宽:600)" }, JsonRequestBehavior.AllowGet);
}
}
catch
{
return Json(new { error = , message = "上传失败" }, JsonRequestBehavior.AllowGet);
}
}
class UploadFileResult
{
public int Result { set; get; }
public int ErrorCode { set; get; }
public string Msg { set; get; }
public UploadFileResultInfo Info { set; get; }
} class UploadFileResultInfo
{
public string FileName { set; get; }
public string Surfix { set; get; }
public string Url { set; get; }
public long FileSize { set; get; } }
文件写入文件分布式系统(asp.net C#)的更多相关文章
- 【PHP】文件写入和读取详解
文章提纲: 一.实现文件读取和写入的基本思路 二.使用fopen方法打开文件 三.文件读取和文件写入操作 四.使用fclose方法关闭文件 五.文件指针的移动 六.Windows和UNIX下的回车和换 ...
- PHP 文件写入和读取(必看篇)
文章提纲: 一.实现文件读取和写入的基本思路 二.使用fopen方法打开文件 三.文件读取和文件写入操作 四.使用fclose方法关闭文件 五.文件指针的移动 六.Windows和UNIX下的回车和换 ...
- Python统计字符出现次数(Counter包)以及txt文件写入
# -*- coding: utf-8 -*- #spyder (python 3.7) 1. 统计字符(可以在jieba分词之后使用) from collections import Counter ...
- 定时自动同步文件,支持多文件夹同步,支持过滤文件和文件夹,解决FileSystemWatcher多次文件触发事件(源码)
博客园里面有很多同步工具和软件,关于FileSystemWatcher类解释的也很多,但收集了很多文章后,感觉没好的方法,自己没事写了一个定时文件同步,借鉴了很多博客园朋友的东西: 上主菜: 配置文件 ...
- .NET跨平台之旅:在Linux上将ASP.NET 5运行日志写入文件
在前一篇博文(增加文件日志功能遇到的挫折)中,我们遇到了这样一个问题:虽然有一些.NET日志组件(比如Serilog, NLog)已经开始支持.NET Core,但目前只支持控制台输出日志,不支持将日 ...
- 利用其它带文件防护功能的软件防止*.asp;*.jpg写入文件。
此木马是一个.NET程序制作,如果你的服务器支持.NET那就要注意了,,进入木马有个功能叫:IIS Spy,点击以后可以看到所有站点所在的物理路径.以前有很多人提出过,但一直没有人给解决的答案.. 防 ...
- C# Byte[]数组读取和写入文件
这个项目我用的是asp.net构建的,代码如下 protected void ByteToString_Click(object sender, EventArgs e) { string conte ...
- 解决:ADODB.Stream 错误 '800a0bbc' 写入文件失败
重装更改目录为e盘后,上传文件出现问题.解决方法: 调用adodb.stream的savetofile方法时发生错误, ADODB.Stream 错误 800a0bbc 写入文件失败.(msxml3. ...
- mac 无法识别seagate硬盘、无法向其写入文件
1,无法识别 Seagate 硬盘 新买的mac air Captian 10.11.6系统,连上硬盘根本不出现盘符,usb插头不要插得太深,慢慢的插入,看到硬盘白灯亮起就可以了 2,无法向 Seag ...
随机推荐
- Linux系统下查看已经登录用户并踢出的方法
LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务. 查看用户的操作 查看当前用户: [ROOT@LOCALHOST ROOT] # W ...
- 一道关于java 类初始化 成员初始化的笔试题的解析
代码如下: java笔试题public class Mapplication { private static int n; private static Mapplication m1 = new ...
- 9段高效率开发PHP程序的代码
php是世界上最好的语言 在php网站开发中,大家都希望能够快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是起飞的感觉.今天由杭州php工程师送出福利来了,以下9段高效率开发PHP ...
- Asp.net MVC Bundle 的使用与扩展
一.Asp.net 自带Bundle的使用: 1. 在Globale中注册与配置 BundleConfig.RegisterBundles(BundleTable.Bundles); public c ...
- 《Java数据结构与算法》笔记-CH5-链表-3双端链表
/** * 双端链表的实现 */ class LinkA { public long dData; public LinkA next; public LinkA(long d) { dData = ...
- javascript压缩图片无刷新上传
首先要说明,该方式我没有实现成功,主要问题点是压缩后能拿到压缩后图片地址,确不知道怎么上传上去,如果有哪位大牛可以指点一二,万分感谢. 图片压缩代码: compress: function(sourc ...
- linux top命令VIRT,RES,SHR,DATA的含义
VIRT:virtual memory usage 虚拟内存1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等2.假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而 ...
- SurfaceView 和 TextureView
1.区别 The followings are two limitations of SurfaceView: You can not be animated, transformed and sca ...
- 读取proc信息的可扩展实现
需求 1. 将内存.线程数等信息注册到zk上进行监控 2. 统计信息,为下一步做负载均衡做准备. 实现 本文只解决问题1. 从网上查询了下,这些信息可以从proc文件系统中获取,如果不知道proc的, ...
- Windows Socket 最大连接数
Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响. Windows 下单机的TCP连接数受多个参数影响: 最大TCP连接数 [HKEY_LOCAL_MACHINE \Sy ...