Upload file Ajax với FormData

Tram Ho

1. FormData là gì

FormData là một interface mới được HTML5 giới thiệu trong Web API.

Hầu hết chúng ta đã từng chặn hoặc chỉnh sửa dữ liệu khi submit form với Jquery . FormData là một Web API interface, cung cấp cho ta một cách tiếp cận khác với việc xử lý form. Việc sử dụng FormData cũng giống với việc xử dụng ajax jquery.

2. Cách sử dụng form Data

2.1. .append()

Chèn thêm cặp key-value vào form data. Giống với việc ta chèn input hidden_field vào form thông thường.

2.2 .delete()

Xóa cặp key-value trong FormData Object

2.3 Loop qua các key-value với entries

Chúng ta có thể loop qua các key-value của FormData với entries

2.4 .get()

Get giá trị đầu tiên của formdata tương ứng với key

2.5 .getAll()

Trả về tất cả các giá trị của formdata tương ứng với key

2.6 .set()

Gán giá trị cho một key tương ứng

3. Upload file với ajax formData

Mặc định thì file field khi submit form sẽ không được add vào ajax nếu ta submit như thông thường. Khi submit thì fields[type=”file”] sẽ bị missing

Với formData

mặc định Ajax sẽ để option processData là true, tự động convert data về string, và set content-type là “application/x-www-form-urlencoded”. False sẽ skip quá trình này và set mặc định của form

ContentType: false cũng skip việc set contentType mặc định của ajax là “application/x-www-form-urlencoded”.

4. Upload file với iframe

Còn 1 cách khác để upload file là sử dung iframe

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo