مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

مشکل در آپلود فایل بعد از پابلیش برنامه

  • جمعه 12 آذر 1395
  • 10:00
تشکر میکنم

باسلام

آپلود فایلو بصورت زیر نوشتم، وقتی تو سیستم خودم کنترل میکنم کاملا درسته ولی وقتی پابلیش میکنم برنامه رو و فایل رو انتخاب میکنم و ارسال عکس رو میزنم پیام Not Found میده نمیدونم برای چی!!!

تابع برای آپلود به صورت زیر :

  function RunUploadFile() {
        // Checking whether FormData is available in browser
        if (window.FormData !== undefined) {

            var fileUpload = $("#FileUpload2").get(0);
            var files = fileUpload.files;
            // Create FormData object
            var fileData = new FormData();

            // Looping over all files and add it to FormData object
            for (var i = 0; i < files.length; i++) {
                fileData.append(files[i].name, files[i]);
            }

            // Adding one more key to FormData object
            fileData.append('ProfessorID', 'kaveh');

            $.ajax({
                url: '/Folder/UploadFilesToFolder',
                type: "POST",
                contentType: false, // Not to set any content header
                processData: false, // Not to process data
                data: fileData,
                success: function (result) {

                    $("#FileName").val(result);

                    alert("فایل انتخابی با موفقیت ارسال شد");
                    
                },
                error: function (err) {

                    alert(err.statusText);
                }
            });
        } else {
            alert("FormData is not supported.");
        }

    }

قسمت FileUpload

 <tr>
            <td>انتخاب فایل مورد نظر</td>
            <td>@Html.Action("ViewFileTypeForUpload", "Folder")</td>
            <td><input type="file" id="FileUpload2" /></td>
            <td>
                
                <a class=" btn btn-s-md btn-warning btn-rounded" id="btnUploadFile">بررسی و ارسال</a>
               
            </td>
            <td>
                <a class=" btn btn-s-md btn-success btn-rounded" id="BtnSaveFile">ثبت در پرونده</a>
                
            </td>
        </tr>

سمت کنترلر هم بصورت زیر :

  [HttpPost]
        public ActionResult UploadFilesToFolder()
        {
            string ResultFile = null;
            // Checking no of files injected in Request object  
            if (Request.Files.Count > 0)
            {
                try
                {
                    //  Get all files from Request object  
                    HttpFileCollectionBase files = Request.Files;
                    for (int i = 0; i < files.Count; i++)
                    {
                        string path = AppDomain.CurrentDomain.BaseDirectory + "FileFolder/";
                        //string filename = Path.GetFileName(Request.Files[i].FileName);  

                        HttpPostedFileBase file = files[i];
                        string fname;

                        // Checking for Internet Explorer  
                        if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
                        {
                            string[] testfiles = file.FileName.Split(new char[] { '\\' });
                            fname = testfiles[testfiles.Length - 1];
                            ResultFile = fname;
                        }
                        else
                        {
                            Guid Privateid = Guid.NewGuid();
                            fname = Privateid + file.FileName;
                            ResultFile = fname;
                        }
                        
                        // Get the complete folder path and store the file inside it. 
                        fname = Path.Combine(Server.MapPath("~/FileFolder/"), fname);
                        file.SaveAs(fname);
                    }
                    // Returns message that successfully uploaded  
                    return Json(ResultFile);
                }
                catch (Exception ex)
                {
                    return Json("Error occurred. Error details: " + ex.Message);
                }
            }
            else
            {
                return Json("No files selected.");
            }
        }

وقتی پابلیش کردم فکر کنم این قسمت اجرا میشه تو تابع RunFileUpload :

  error: function (err) {

                    alert(err.statusText);
                }

چون پیام خطای Not Found رو من تو برنامه اصلا تعریف نکردم!!!

مثل همیشه منتظر راهنماییتونم

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • جمعه 12 آذر 1395
  • 10:14

مشکلم برطرف شد

همون جور که حدس میزدم مشکل اینجا بود

 $.ajax({
              url: '/Arshiv/Folder/UploadFilesToFolder',
              type: "POST",
              contentType: false, // Not to set any content header
              processData: false, // Not to process data
              data: fileData,
              success: function (result) {
 
                  $("#FileName").val(result);
 
                  alert("فایل انتخابی با موفقیت ارسال شد");
                   
              },
              error: function (err) {
 
                  alert(err.statusText);
              }
          });

اسم برنامه که پابلیش کردم رو به url اضافه کردم و به ایجکس ارسال کردم

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)