Alex2 101 Ответов: 1

Как решить проблему с загруженным шаблоном, который не найден как ошибка файлового ресурса во время загрузки файла в ASP.NET с C#?


У меня возникла проблема с загруженным PDF-шаблоном, который не найден как ошибка файлового ресурса во время загрузки файла. Я разместил это приложение. Если я загружаю файлы с помощью размещенного приложения, то никаких проблем нет. Иначе у меня будет ошибка "E:FileUpload.pdf" не найдено как исключение ресурса или файла. На самом деле я извлекаю данные из PDF-файла, загруженного с помощью File upload.

string Orginalfilename = Path.GetFileName(fupload.PostedFile.FileName);

               FilePath = fupload.PostedFile.FileName;
               //FilePath += Orginalfilename;
               PdfReader pdfReader = new PdfReader(FilePath);
               AcroFields pdfFormFields = pdfReader.AcroFields;


Что я уже пробовал:

<pre> string Orginalfilename = Path.GetFileName(fupload.PostedFile.FileName);
               
                FilePath = fupload.PostedFile.FileName;
                //FilePath += Orginalfilename;
                PdfReader pdfReader = new PdfReader(FilePath);
                AcroFields pdfFormFields = pdfReader.AcroFields;

web.config устанавливается следующим образом
<httpRuntime maxRequestLength="20480" executionTimeout="3600" enable="true"/>

<security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>

  </security>

1 Ответов

Рейтинг:
2

Zahid Mughal

//Having all CRUD operations related to file.

<pre>public class FilesController : Controller
    {

        FileDownload obj;
        public FilesController()
        {
            obj = new FileDownload();
        }
        // GET: Files
        public ActionResult Index()
        {
            var filesCollection = obj.GetFiles();
            return View(filesCollection);
        } 
        //Download particular using it's ID 
        public FileResult Download(string FileID)
        {
              
            string CurrentFileName = obj.GetFileNameById(FileID);

            string contentType = string.Empty;

            contentType = extentionDetector(CurrentFileName);
            
            return File(CurrentFileName, contentType, CurrentFileName);
        }

        // Delete file using file name
        public ActionResult DeleteFile(string fileName)
        {
             
            var fullPath = Server.MapPath("~/MyFiles/" + fileName);

            if (System.IO.File.Exists(fullPath))
            {
                System.IO.File.Delete(fullPath);
                ViewBag.deleteSuccess = "true";
            }
            return Redirect("index");
        }
        //get the format of the file using this Detector 
        private string extentionDetector(string CurrentFileName) {

            string contentType = string.Empty;
            if (CurrentFileName.Contains(".pdf"))
            {
                contentType = "application/pdf";
            }

            else if (CurrentFileName.Contains(".docx"))
            {
                contentType = "application/docx";
            }
            else if (CurrentFileName.Contains(".txt"))
            {
                contentType = "application/txt";
            }
            else if (CurrentFileName.Contains(".png"))
            {
                contentType = "application/png";
            }
            return contentType;
        }	
        //upload file method, after submitting rquest	
        [HttpPost]
        public ActionResult FileUpload(IEnumerable<HttpPostedFileBase> files)
        {
            foreach (HttpPostedFileBase file in files)
            {
                if (file != null && file.ContentLength > 0)
                    try
                    {
                        string path = Path.Combine(Server.MapPath("~/MyFiles"),
                                                   Path.GetFileName(file.FileName));
                        file.SaveAs(path);
                    }
                    catch (Exception ex)
                    {
                        ViewBag.Message = "ERROR:" + ex.Message.ToString();
                    }
                else
                {
                    ViewBag.Message = "You have not specified a file.";
                }
            }
            return Redirect("index");
        }

    }


Используйте его для справки о вашей проблеме. У вас есть проблемы с путями к серверу, которые решаются в моем коде. Надеюсь, что да, это полезно для вас.


[no name]

Не могли бы вы объяснить это лучше
Я беру загруженный файл и извлекаю данные из него же. Но, как я уже сказал, я получаю проблему при взятии шаблона PDF, отличного от папки размещенной машины с правами доступа.
строки Orginalfilename = путь.GetFileName(fupload.PostedFile.имя файла);

FilePath = fupload.PostedFile.имя файла;
//FilePath += Orginalfilename;
PdfReader pdfReader = новый PdfReader(путь к файлу);
AcroFields pdfFormFields = pdfReader.Сети;
строка CapturedPDFValues = pdfFormFields.GetField ("hidPDFDataExport");
string[] PDFValues = CapturedPDFValues.Split (разделитель1);


Доктор строкаданных = dtPDFData.Невров();

//FileInfo info = new FileInfo(fupload.PostedFile.имя файла);
//string fileNameWithoutPath = info.Name;



dr ["приветствие"] = PDFValues[0].Подстрока (PDFValues[0]. LastIndexOf(delimiter2) + 1);

[no name]

Я думаю, что размер вашего файла может превышать лимит или вам придется переместить папку с файлами в другой каталог. Установите web. config следующим образом

& lt;конфигурация>
&ЛТ;система.веб&ГТ;
< httpRuntime maxRequestLength= "307200" />

< system. webserver>
< безопасность>
& lt;requestfiltering>
<requestLimits maxAllowedContentLength= "314572800" />



[no name]

https://stackoverflow.com/questions/4731295/asp-net-http-404-file-not-found-instead-of-maxrequestlength-exception

Посетите следующую ссылку, та же проблема и ее решение ... Пожалуйста, не забудьте отметить мой положительный рейтинг. :)