Ejemplo n.º 1
0
        // 上传文件到服务器
        public JsonResult Service()
        {
            List <IPostFileData> list = new List <IPostFileData>();

            foreach (string key in Request.Files.Keys)
            {
                HttpPostedFileBase file     = Request.Files[key];
                string             filename = file.FileName;
                if (filename.IndexOf(".") < 0)
                {
                    filename = filename + ".jpg";
                }
                byte[] filebytes = new byte[file.ContentLength];
                file.InputStream.Read(filebytes, 0, filebytes.Length);
                PostFileData data = new PostFileData();
                data.FileName = file.FileName;
                data.Name     = key;
                data.Value    = filebytes;

                list.Add(data);
            }
            Log.Info("收到图片{0}张", list.Count);
            if (list.Count <= 0)
            {
                return(Json(FuncResult.FailResult("请上传图片", (int)ApiStatusCode.BAD_REQUEST)));
            }
            FileSystemClient client = new FileSystemClient(AppConfig.FileSystem_AppID, AppConfig.FileSystem_AppSecret);
            var res = client.UploadFile(list.ToArray());

            return(Json(res));
        }
Ejemplo n.º 2
0
        public void AddFile(Func <Stream> fileFactory, string fieldName, long length, string contentType = "application/octet-stream")
        {
            PostFileData item = new PostFileData();

            item.FileFactory   = fileFactory;
            item.FieldName     = fieldName;
            item.ContentType   = contentType;
            item.ContentLength = length;
            this._files.Add(item);
        }
Ejemplo n.º 3
0
        // TODO:アップロード関連のメソッドのブラッシュアップ
        #region アップロードメソッド
        public void HttpRequestUpload(string url, IDictionary<string, string> postData, Encoding enc, string PostName, string fileName, string contentType, Action<Stream> invoker)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.Credentials = Credentials;
            req.CookieContainer = Cookie;

            if (postData != null)
            {
                using (var post = new PostFileData())
                {
                    foreach (var line in postData)
                    {
                        post.Add(line.Key, line.Value);
                    }
                    using (var stream = new FileStream(fileName, FileMode.Open))
                    {
                        post.Add(PostName, stream, (int)stream.Length, Path.GetFileName(fileName), contentType);
                    }
                    req.ContentType = "multipart/form-data; boundary=" + post.Boundary;

                    var data = post.ToBytes();
                    req.ContentLength = data.Length;

                    try
                    {
                        using (Stream reqStream = req.GetRequestStream())
                        {
                            reqStream.Write(data, 0, data.Length);
                            reqStream.Close();
                        }
                    }
                    catch (WebException)
                    {
                        throw;
                    }
                }
            }

            try
            {
                using (WebResponse responce = req.GetResponse())
                {
                    if (invoker != null)
                    {
                        using (Stream resStream = responce.GetResponseStream())
                        {
                            invoker(resStream);
                        }
                    }
                }
            }
            catch (WebException)
            {
                throw;
            }
        }