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

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

کاربر سایت

kaveh.norozi

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

سوال در مورد ایجاد فولدر زمان آپلود تصویر

  • سه شنبه 20 تیر 1396
  • 16:44
تشکر میکنم

سلام

من برای آپلود بصورت Ajax طبق روش زیر عمل کردم

function RunUploadAks() {
        if (window.FormData !== undefined) {
            var fileUpload = $("#UploadImage").get(0);
            var files = fileUpload.files;
            var fileData = new FormData();
            for (var i = 0; i < files.length; i++) {
                fileData.append(files[i].name, files[i]);
            }
            var filenameis=$("#STDID").val();
            fileData.append('filenameis', filenameis);
            $.ajax({
                url: '@Url.Action("UploadImageFiles", "StudentBases")',
                type: "POST",
                contentType: false, // Not to set any content header
                processData: false, // Not to process data
                data: fileData,
                success: function (result) {
                    alert("عکس با موفقیت بصورت موقت ارسال شد");
                    var filenameis = result;
                    $("#Image34").val(filenameis);
                },
                error: function (err) {
                    alert(err.statusText);
                }
            });
        } else {
            alert("FormData is not supported.");
        }

    }

این هم کد کنترلر:

  [HttpPost]
        public ActionResult UploadImageFiles()
        {
            string ResultFile = null;
            if (Request.Files.Count > 0)
            {
                try
                {
                    HttpFileCollectionBase files = Request.Files;
                    for (int i = 0; i < files.Count; i++)
                    {
                        
                        var FolderPath = Server.MapPath("~/Student/img/"+ "kaveh" + "/");
                        Directory.CreateDirectory(FolderPath);
                        string path = AppDomain.CurrentDomain.BaseDirectory + "Student/img/" + "kaveh" + "/";
                        
                        HttpPostedFileBase file = files[i];
                        string fname;
                        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("~/Student/img/"+ "kaveh" + "/"), 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.");
            }
        }

میخام فایل داخل فولدری که من انتخاب میکنم آپلود بشه!

الان تو کنترلر فولدر kaveh رو دادم و اوکیه و فولدرو اگه نباشه میسازه

میخام این اسم بصورت data ارسال بشه در حقیقت میخام یکی از فیلدها که کد ملی یا شماره دانشجوییه ارسال و فولدری به اسم اون ایجاد کنم!!!!

من این خط هارو زمان ارسال استفاده کردم

 var filenameis=$("#STDID").val();
            fileData.append('filenameis', filenameis);

ولی نمیدونم اینجوری دیتا ارسال میشه یا نه؟؟؟

اگه میشه چجوری باید دریافت کنم

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

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

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

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 20 تیر 1396
  • 16:47
  jQuery(document).ready(function ($) {
    $('#loginButton').click(function (e) {
        e.preventDefault();
        var formData = new FormData();
        var totalFiles = document.getElementById("FileUpload1").files.length;

        var file = document.getElementById("FileUpload1").files[0];
        formData.append("FileUpload", file);
        alert(totalFiles);
        alert(file);

    $.ajax({
        type: "POST",
        url: '/Manage/GetPartialView',
        data: formData,
        dataType: 'json',
        contentType: false,
        processData: false,
        success: function (result) {
            alert(result);
        },

    });
});


});

میتونید در قسمت Data پارامتر های دیگه ای هم بفرستید

کاربر سایت

kaveh.norozi

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

  • سه شنبه 20 تیر 1396
  • 16:49

سمت کنترلر (سرور) چجوری دریافت کنم Data رو؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 20 تیر 1396
  • 16:52

توسط ورودی اکشن

همنام ورودی قرار دهید

data: {file:formData,name :'Iman'}

file  و  name نام ورودی ها هستند

کاربر سایت

kaveh.norozi

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

  • سه شنبه 20 تیر 1396
  • 16:54

اوکی پیدا کردم

var filenamein = Request.Form["filenameis"];

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

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

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

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