Esempio n. 1
0
//        public Task<IQueryable<HDFile>> Post(string nombrearchivo, int sitio)
        public void Post(string nombrearchivo, int sitio)
        {
            nombrearchivosubido = nombrearchivo;
            sitioprocedencia    = sitio;

            try
            {
                if (Request.Content.IsMimeMultipartContent())
                {
                    var streamProvider = new WithExtensionMultipartFormDataStreamProvider(uploadFolderPath);

                    var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith <IQueryable <HDFile> >(t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }

                        var fileInfo = streamProvider.FileData.Select(i =>
                        {
                            var info = new FileInfo(i.LocalFileName);
                            //nombrerealarchivo = info.Name;
                            //Rename(nombrerealarchivo, nombrearchivosubido, sitioprocedencia);
                            //return new HDFile(info.Name, Request.RequestUri.AbsoluteUri + "?filename=" + info.Name, (info.Length / 1024).ToString());
                            //string nuevoarchivo = uploadFolderPath + nombrearchivosubido;
                            // return new HDFile(uploadFolderPath+nombrearchivosubido, Request.RequestUri.AbsoluteUri + "?filename=" + nombrearchivosubido, (nuevoarchivo.Length / 1024).ToString());
                            //return new HDFile(uploadFolderPath + nombrearchivosubido, Request.RequestUri.AbsoluteUri + "?filename=" + nombrearchivosubido, (nuevoarchivo.Length / 1024).ToString());
                            return(new HDFile("", "", ""));
                        });

                        foreach (var file in streamProvider.FileData)
                        {
                            var fi            = new FileInfo(file.LocalFileName);
                            nombrerealarchivo = fi.Name;
                            Rename(nombrerealarchivo, nombrearchivosubido, sitioprocedencia);
                            string miodatos = nombrearchivo + "/" + nombrearchivosubido;
                        }

                        return(fileInfo.AsQueryable());
                    });



                    //return task;
                }
                else
                {
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
                }
            }
            catch (Exception ex)
            {
                //log.Error(ex);
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
            //Rename(nombrearchivo, nombrearchivosubido, sitioprocedencia);
        }
Esempio n. 2
0
        public Task <IQueryable <HDFile> > Post(string id)
        {
            var appSettings = ConfigurationManager.AppSettings;

            try
            {
                //uploadFolderPath variable determines where the files should be temporarily uploaded into server.
                //Remember to give full control permission to IUSER so that IIS can write file to that folder.

                //string uploadFolderPath = HostingEnvironment.MapPath("~" + appSettings["CourseDirectory"] + "/" + id.Substring(0, 4) + "/" + id);
                string uploadFolderPath = appSettings["CourseDirectory"] + "\\" + id.Substring(0, 4) + "\\" + id;
                //如果路径不存在,创建路径
                if (!Directory.Exists(uploadFolderPath))
                {
                    Directory.CreateDirectory(uploadFolderPath);
                }

                //#region CleaningUpPreviousFiles.InDevelopmentOnly
                //DirectoryInfo directoryInfo = new DirectoryInfo(uploadFolderPath);
                //foreach (FileInfo fileInfo in directoryInfo.GetFiles())
                //	fileInfo.Delete();
                //#endregion

                if (Request.Content.IsMimeMultipartContent()) //If the request is correct, the binary data will be extracted from content and IIS stores files in specified location.
                {
                    var context        = System.Web.HttpContext.Current.Request;
                    var streamProvider = new WithExtensionMultipartFormDataStreamProvider(uploadFolderPath, context["name"]);
                    var task           = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith <IQueryable <HDFile> >(t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }

                        var fileInfo = streamProvider.FileData.Select(i =>
                        {
                            var info = new FileInfo(i.LocalFileName);
                            return(new HDFile(info.Name, string.Format("{0}?filename={1}", Request.RequestUri.AbsoluteUri, info.Name), (info.Length / 1024).ToString()));
                        });
                        return(fileInfo.AsQueryable());
                    });

                    return(task);
                }
                else
                {
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
                }
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        public Task <IQueryable <HDFile> > Post()
        {
            try
            {
                //uploadFolderPath variable determines where the files should be temporarily uploaded into server.
                //Remember to give full control permission to IUSER so that IIS can write file to that folder.
                var uploadFolderPath = HostingEnvironment.MapPath("~/App_Data/" + UploadFolder);
                //log.Debug(uploadFolderPath);

                //#region CleaningUpPreviousFiles.InDevelopmentOnly
                //DirectoryInfo directoryInfo = new DirectoryInfo(uploadFolderPath);
                //foreach (FileInfo fileInfo in directoryInfo.GetFiles())
                //	fileInfo.Delete();
                //#endregion

                if (Request.Content.IsMimeMultipartContent()) //If the request is correct, the binary data will be extracted from content and IIS stores files in specified location.
                {
                    Log.D("IsMimeMultipartContent=true");
                    //FileUtil.WriteStringToFile(@"D:\Log.txt", "IsMimeMultipartContent=true", false, true);
                    var streamProvider = new WithExtensionMultipartFormDataStreamProvider(uploadFolderPath);
                    var task           = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith <IQueryable <HDFile> >(t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }

                        var fileInfo = streamProvider.FileData.Select(i =>
                        {
                            var info = new FileInfo(i.LocalFileName);
                            // var fileName = i.Headers.ContentDisposition.FileName;//用户上传的文件名
                            return(new HDFile(info.Name, Request.RequestUri.AbsoluteUri + "?filename=" + info.Name, (info.Length / 1024).ToString()));
                        });
                        return(fileInfo.AsQueryable());
                    });

                    return(task);
                }
                else
                {
                    Log.D("IsMimeMultipartContent=false");
                    //FileUtil.WriteStringToFile(@"D:\Log.txt", "IsMimeMultipartContent=false", false, true);
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
                }
            }
            catch (Exception ex)
            {
                Log.D("UploadFile异常" + ex.ToString());
                //FileUtil.WriteStringToFile(@"D:\Log.txt", "UploadFile异常" + ex.ToString(), false, true);
                //log.Error(ex);
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
Esempio n. 4
0
        public IHttpActionResult UploadFiles()
        {
            var ObjServiceResponseModel = new ServiceResponseModel <List <string> >();

            try
            {
                var uploadFolderPath = HostingEnvironment.MapPath("~/Content/eFleetDocs/VehicleIncident/");

                //#region CleaningUpPreviousFiles.InDevelopmentOnly
                //DirectoryInfo directoryInfo = new DirectoryInfo(uploadFolderPath);
                //foreach (FileInfo fileInfo in directoryInfo.GetFiles())
                //	fileInfo.Delete();
                //#endregion

                if (Request.Content.IsMimeMultipartContent())
                {
                    var streamProvider = new WithExtensionMultipartFormDataStreamProvider(uploadFolderPath);
                    var task           = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith <List <string> >(t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }

                        var fileInfo = streamProvider.FileData.Select(i =>
                        {
                            var info = new FileInfo(i.LocalFileName);
                            return(info.Name);
                        });
                        return(fileInfo.ToList());
                    });
                    ObjServiceResponseModel.Data     = task.Result.ToList();
                    ObjServiceResponseModel.Response = Convert.ToInt32(ServiceResponse.SuccessResponse, CultureInfo.InvariantCulture);
                    ObjServiceResponseModel.Message  = CommonMessage.Successful();
                }
                else
                {
                    ObjServiceResponseModel.Response = Convert.ToInt32(ServiceResponse.FailedResponse, CultureInfo.CurrentCulture);
                    ObjServiceResponseModel.Message  = CommonMessage.InvalidEntry();
                    ObjServiceResponseModel.Data     = null;
                }
                //return Ok(ObjServiceResponseModel);
            }
            catch (Exception ex)
            {
                ObjServiceResponseModel.Message  = ex.Message;
                ObjServiceResponseModel.Response = Convert.ToInt32(ServiceResponse.ExeptionResponse, CultureInfo.CurrentCulture);
                ObjServiceResponseModel.Data     = null;
                // return Ok(ObjServiceResponseModel);
            }
            return(Ok(ObjServiceResponseModel));
        }
Esempio n. 5
0
        public Task <IQueryable <HDFile> > Post()
        {
            try
            {
                string uploadFolderPath = UploadFolder + System.Web.HttpContext.Current.Request["ProjectID"] + "\\";
                Logger.LogDebug("Save Path: " + uploadFolderPath, "UploadSoundController", "Post");

                //如果路径不存在,创建路径
                if (!Directory.Exists(uploadFolderPath))
                {
                    Directory.CreateDirectory(uploadFolderPath);
                }

                if (Request.Content.IsMimeMultipartContent())
                {
                    var streamProvider = new WithExtensionMultipartFormDataStreamProvider(uploadFolderPath, 4096);
                    var Task           = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }

                        var fileInfo = streamProvider.FileData.Select(i =>
                        {
                            var info = new FileInfo(i.LocalFileName);
                            return(new HDFile(info.Name, string.Format("{0}?filename={1}", Request.RequestUri.AbsoluteUri, info.Name), (info.Length / 1024).ToString()));
                        });
                        return(fileInfo.AsQueryable());
                    });

                    return(Task);
                }
                else
                {
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
                }
            }
            catch (Exception ex)
            {
                Logger.LogException("上传声音时发生异常!", "UploadSoundController", "Post", ex);
                return(null);
            }
        }
Esempio n. 6
0
        //[Route("api/Upload")] web
        public async Task <string> Upload(string guid)
        {
            //检查是否是 multipart/form-data
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            // 文件保存目录路径
            //关于Server.MapPath和HostingEnvironment.MapPath:
            //https://blog.csdn.net/xrjohn/article/details/50952503
            //string UploadFilePath = HostingEnvironment.MapPath("~/Upload");
            string UploadFilePath = HttpContext.Current.Server.MapPath("~/Images");

            //如果路径不存在 创建路径
            if (Directory.Exists(UploadFilePath))
            {
                Directory.CreateDirectory(UploadFilePath);
            }

            List <string> files = new List <string>();

            // 设置上传目录
            var provider = new WithExtensionMultipartFormDataStreamProvider(UploadFilePath, guid);

            try
            {
                //读取data
                var task = await Request.Content.ReadAsMultipartAsync(provider);

                foreach (var file in provider.FileData)
                {
                    files.Add(Path.GetFileName(file.LocalFileName));
                }
            }
            catch
            {
                throw;
            }

            return(string.Join(",", files));
        }
Esempio n. 7
0
 /// <summary>
 /// 获取用户提交的文件上传请求
 /// </summary>
 /// <returns></returns>
 public Task <IQueryable <FileData> > Post()
 {
     try
     {
         if (string.IsNullOrEmpty(UploadFolder))
         {
             throw new ArgumentNullException(UploadFolder);
         }
         if (!Directory.Exists(UploadFolder))
         {
             Directory.CreateDirectory(UploadFolder);
         }
         if (!Request.Content.IsMimeMultipartContent())
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "此请求格式不正确"));
         }
         var streamProvider = new WithExtensionMultipartFormDataStreamProvider(UploadFolder);
         var task           = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t =>
         {
             if (t.IsFaulted || t.IsCanceled)
             {
                 throw new HttpResponseException(HttpStatusCode.InternalServerError);
             }
             var fileInfo = streamProvider.FileData.Select(i =>
             {
                 var info = new FileInfo(i.LocalFileName);
                 return(new FileData(info.Name, string.Format("{0}?filename={1}", Request.RequestUri.AbsoluteUri, info.Name), (info.Length / 1024).ToString()));
             });
             return(fileInfo.AsQueryable());
         });
         return(task);
     }
     catch (Exception ex)
     {
         throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
     }
 }
Esempio n. 8
0
        public Task <IQueryable <UploadFile> > Post()
        {
            try
            {
                log.Debug(ImportFolder);

                if (Request.Content.IsMimeMultipartContent())
                {
                    var streamProvider = new WithExtensionMultipartFormDataStreamProvider(ImportFolder);
                    var task           = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith <IQueryable <UploadFile> >(t =>
                    {
                        if (t.IsFaulted || t.IsCanceled)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }

                        var fileInfo = streamProvider.FileData.Select(i =>
                        {
                            var info = new FileInfo(i.LocalFileName);
                            return(new UploadFile(info.Name, Request.RequestUri.AbsoluteUri + "?filename=" + info.Name, (info.Length / 1024).ToString()));
                        });
                        return(fileInfo.AsQueryable());
                    });

                    return(task);
                }
                else
                {
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
Esempio n. 9
0
        public async Task <ResponseData <object> > UploadAvatar()
        {
            ResponseData <object> responseData;

            string userGuid = HttpContext.Current.Request.Form["guid"];

            if (SessionHelper.IsExist(userGuid))
            {
                string adminAccount = HttpContext.Current.Session[userGuid].ToString();

                RoleTb user = db.RoleTb.Where(u => u.account == adminAccount).FirstOrDefault();

                if (user != null)
                {
                    string uploadFolderPath = HostingEnvironment.MapPath("~/avatars");

                    if (!Directory.Exists(uploadFolderPath))
                    {
                        Directory.CreateDirectory(uploadFolderPath);
                    }

                    Guid imgGuid = Guid.NewGuid();

                    List <string> files    = new List <string>();
                    var           provider = new WithExtensionMultipartFormDataStreamProvider(uploadFolderPath, imgGuid);
                    try
                    {
                        // Read the form data.
                        await Request.Content.ReadAsMultipartAsync(provider);

                        // This illustrates how to get the file names.

                        foreach (var file in provider.FileData)
                        {
                            string fileName = Path.Combine("avatars", Path.GetFileName(file.LocalFileName));
                            files.Add(fileName);

                            user.avatarUrl       = fileName;
                            db.Entry(user).State = System.Data.Entity.EntityState.Modified;
                        }
                        if (db.SaveChanges() > 0)
                        {
                            responseData = ResponseHelper <object> .SendSuccessResponse(files);
                        }
                        else
                        {
                            responseData = ResponseHelper <object> .SendErrorResponse("头像上传失败");
                        }
                    }
                    catch (Exception ex)
                    {
                        responseData = ResponseHelper <object> .SendErrorResponse(ex.Message);
                    }
                }
                else
                {
                    responseData = ResponseHelper <object> .SendErrorResponse("登陆失效", Models.StatusCode.OPERATION_ERROR);
                }
            }
            else
            {
                responseData = ResponseHelper <object> .SendErrorResponse("未登录", Models.StatusCode.OPERATION_ERROR);
            }

            return(responseData);
        }