Пример #1
0
        public bool UploadFile(string File, string Author,
                               string AreaCode, string UnitName)
        {
            string           vUrl      = string.Format("{0}/Api/UploadFile", m_RemotingServerAddress);
            UploadFileStruct vUFStruct = new UploadFileStruct();

            vUFStruct.UsersAuthor          = new UserAuthorSturct();
            vUFStruct.UsersAuthor.UserID   = m_UserID;
            vUFStruct.UsersAuthor.Token    = m_Token;
            vUFStruct.UsersAuthor.UserName = m_UserName;

            vUFStruct.Files             = new IntrefaceStruct.FileInfo[1];
            vUFStruct.Files[0]          = new IntrefaceStruct.FileInfo();
            vUFStruct.Files[0].FileName = Path.GetFileName(File);
            vUFStruct.Files[0].Author   = Author;
            vUFStruct.Files[0].AreaCode = AreaCode;
            vUFStruct.Files[0].UnitName = UnitName;


            JavaScriptSerializer vJSC       = new System.Web.Script.Serialization.JavaScriptSerializer();
            string vJsonStr                 = vJSC.Serialize(vUFStruct);
            NameValueCollection vCollection = new NameValueCollection();

            vCollection.Add("Json", vJsonStr);

            List <ByteArrayContent> vFormDatas = GetFormDataByteArrayContent(vCollection);
            List <ByteArrayContent> vFiles     = GetFileByteArrayContent(new string[] { File });
            string vFileUp = HttpPostFile(vUrl, vFormDatas, vFiles);
            bool   vResult;
            bool   zz = bool.TryParse(vFileUp, out vResult);

            return(vResult);
        }
Пример #2
0
        public bool UploadFiles(string[] Files, string[] Authors,
                                string[] AreaCodeList, string[] UnitNameList)
        {
            string           vUrl      = string.Format("{0}/Api/UploadFile", m_RemotingServerAddress);
            UploadFileStruct vUFStruct = new UploadFileStruct();

            vUFStruct.UsersAuthor        = new UserAuthorSturct();
            vUFStruct.UsersAuthor.UserID = m_UserID;
            vUFStruct.UsersAuthor.Token  = m_Token;

            vUFStruct.Files = new IntrefaceStruct.FileInfo[Files.Length];
            for (int i = 0; i < Files.Length; i++)
            {
                vUFStruct.Files[i]          = new IntrefaceStruct.FileInfo();
                vUFStruct.Files[i].FileName = Path.GetFileName(Files[i]);
                vUFStruct.Files[i].Author   = Authors[i];
                vUFStruct.Files[i].AreaCode = AreaCodeList[i];
                vUFStruct.Files[i].UnitName = UnitNameList[i];
            }
            JavaScriptSerializer vJSC       = new System.Web.Script.Serialization.JavaScriptSerializer();
            string vJsonStr                 = vJSC.Serialize(vUFStruct);
            NameValueCollection vCollection = new NameValueCollection();

            vCollection.Add("Json", vJsonStr);

            List <ByteArrayContent> vFormDatas = GetFormDataByteArrayContent(vCollection);
            List <ByteArrayContent> vFiles     = GetFileByteArrayContent(Files);

            string vResult = HttpPostFile(vUrl, vFormDatas, vFiles);

            return(bool.Parse(vResult));
        }
Пример #3
0
        // POST: api/UploadFile
        public async Task <bool> Post(int id = 0)
        {
            bool vResult = false;

            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            Dictionary <string, string> vDic = new Dictionary <string, string>();
            //string root = HttpContext.Current.Server.MapPath("~/App_Data");//指定要将文件存入的服务器物理位置
            var vProvider = new MultipartFormDataMemoryStreamProvider();

            try
            {
                // 从流中读取数据
                await Request.Content.ReadAsMultipartAsync(vProvider);

                foreach (var key in vProvider.FormData.AllKeys)
                {//接收FormData
                    vDic.Add(key, vProvider.FormData[key]);
                }
                string vJsonStr = vDic["Json"];
                if (vJsonStr != null && vJsonStr != "" && vProvider.FileContents.Count > 0)
                {
                    JavaScriptSerializer vJSC  = new System.Web.Script.Serialization.JavaScriptSerializer();
                    UploadFileStruct     value = vJSC.Deserialize <UploadFileStruct>(vJsonStr);
                    // 获取流中所有的文件
                    for (int i = 0; i < vProvider.FileContents.Count; i++)
                    {
                        var vFileContent = vProvider.FileContents[i];
                        var vFileInfo    = value.Files[i];
                        var vStream      = await vFileContent.ReadAsStreamAsync();

                        byte[] vBody = new byte[vStream.Length];
                        vStream.Read(vBody, 0, vBody.Length);
                        FilesManage vFilesManage = new FilesManage();
                        vResult = vFilesManage.AddFile(value.UsersAuthor.UserID, vFileInfo.AreaCode, vFileInfo.UnitName,
                                                       vFileInfo.FileName, vFileInfo.Author, vBody);
                        if (!vResult)
                        {
                            break;
                        }
                        else
                        {
                            UserOperateLog vUserOperateLog = new UserOperateLog();
                            vUserOperateLog.WriteLog(value.UsersAuthor.UserID, value.UsersAuthor.UserName, string.Format("上传文件,文件名[{0}]", vFileInfo.FileName));
                        }
                    }
                }
            }
            catch
            {
                throw;
            }
            return(vResult);
        }