Set multipart/form-data file upload bằng js data-action form như thế nào?

Thảo luận trong 'Lập Trình Website MVC5 & MVC6' bắt đầu bởi seolagi, 19/10/18.

  1. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,028
    Đã được thích:
    80
    Điểm thành tích:
    48
    Chào mọi người, giúp mình làm sao sử dụng file upload để upload ảnh bìa lên web MCV asp.net c#. Nhưng mình không lấy được ảnh này trong controller của web MCV. Bạn nào giúp mình với.
    Code không báo lỗi gì cả. Chạy thì trả về dữ liệu NULL hicc. mình đã làm theo như trên mạng chỉ điền thêm enctype = "multipart/form-data" rùi mà vẫn không được. bạn nào biết truyền multipart/form-data file upload bằng js data-action form như thế nào? giúp mình với.
    Hình như nó không nhận cái new { enctype = "multipart/form-data" } của mình. Làm sao để truyền nó vào bằng js ajax được giúp mình với. Mình dùng code C# asp.net mô hình MVC
    Mã:
    @using (Html.BeginForm(new { enctype = "multipart/form-data" }))
    {
    @Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
    @Html.EditorFor(m => m.seq, "STT", new { @class = "form-control" })
    <input id="anhbia" onchange="pressed()" type="file" name="upPhoto" />
    
    <button class="btn btn-default" data-action="Update">Lưu Cập nhật</button>
    <button class="btn btn-default" data-action="Delete">Xóa</button>
    <button class="btn btn-default" data-action="Index">Reset</button>
    <script>
    $(function () {
        $("button[data-action]").click(function () {
            var uploadFile = document.getElementById("anhbia");
            if (uploadFile.value.length == 0) {
                alert("Vui lòng chọn file hình ảnh bìa!");
                return;
            }
            var action = $(this).attr("data-action");
            this.form.action = "/new/tin-tuc/" + action;
        });
    });
    </script>
    }
    Trong controller ActionResult mình gọi ra như sau:
    Mã:
    var file = Request.Files["upPhoto"];
    Kết quả trả về bằng NULL. Sao mình không lấy được kết quả
     
    Cảm ơn đã xem bài:

    Set multipart/form-data file upload bằng js data-action form như thế nào?

  2. admin
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,895
    Đã được thích:
    1,198
    Điểm thành tích:
    113
    Giới tính:
    Nam
    hi bạn, bạn sử dụng this.form.action để gọi action bằng js. Bạn truyền nó ở trên Html.BeginForm sẽ không trả được về giá trị đâu bạn ạ.
    Bạn xóa new { enctype = "multipart/form-data" }
    Và gọi trong script thêm this.form.encoding = "multipart/form-data" là được.
    Code bạn thành như sau:
    Mã:
    @using (Html.BeginForm())
    {
    @Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
    @Html.EditorFor(m => m.seq, "STT", new { @class = "form-control" })
    <input id="anhbia" onchange="pressed()" type="file" name="upPhoto" />
    
    <button class="btn btn-default" data-action="Update">Lưu Cập nhật</button>
    <button class="btn btn-default" data-action="Delete">Xóa</button>
    <button class="btn btn-default" data-action="Index">Reset</button>
    <script>
    $(function () {
        $("button[data-action]").click(function () {
            var uploadFile = document.getElementById("anhbia");
            if (uploadFile.value.length == 0) {
                alert("Vui lòng chọn file hình ảnh bìa!");
                return;
            }
            var action = $(this).attr("data-action");
            this.form.encoding = "multipart/form-data";
            this.form.action = "/new/tin-tuc/" + action;
        });
    });
    </script>
    }
     
    seolagi thích bài này.
  3. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,028
    Đã được thích:
    80
    Điểm thành tích:
    48
    Thanks ad, this.form.encoding = "multipart/form-data"; code good
     


Chủ để tương tự : multipart/form-data file
Diễn đàn Tiêu đề Date
Lập Trình Website MVC5 & MVC6 Cách chèn Include Inline file css styles lên trên Razor View MVC 27/10/20
Lập Trình Website MVC5 & MVC6 Adding Cache-Control headers to Static Files Max-Age in MVC 29/4/20
Lập Trình Website MVC5 & MVC6 Lỗi Maximum request length exceeded khi upload file mvc asp.net c# 5/8/19