2012-01-20 28 views
45

Tôi muốn giới hạn trình duyệt thành tệp JPG khi tôi nhấp vào nút duyệt của <input type="file">.Cách lọc loại đầu vào = "tệp" hộp thoại theo loại tệp cụ thể?

Có thể duyệt các loại tệp cụ thể không?

+1

Những loại nút tải lên? Đầu vào tệp HTML? Đèn flash? Thứ gì khác? – Thilo

+0

tệp của bạn ở đâu? trong máy địa phương của bạn hoặc trên web? –

+0

Câu trả lời có thể có: http://stackoverflow.com/questions/181214/file-input-accept-attribute-is-it-useful – Matt

Trả lời

50

Xem http://www.w3schools.com/tags/att_input_accept.asp:

Các thuộc tính chấp nhận được hỗ trợ trong tất cả các trình duyệt chính, trừ Internet Explorer và Safari. Định nghĩa và Cách sử dụng

Thuộc tính chấp nhận chỉ định các loại tệp mà máy chủ chấp nhận (có thể được gửi qua tệp tải lên).

Lưu ý: Thuộc tính chấp nhận chỉ có thể được sử dụng với <input type="file">.

Mẹo: Không sử dụng thuộc tính này làm công cụ xác thực. Tải lên tệp phải được xác thực trên máy chủ.

Cú pháp <input accept="audio/*|video/*|image/*|MIME_type" />

Mẹo:.. Để chỉ định nhiều hơn một giá trị, tách các giá trị với một dấu phẩy (ví dụ <input accept="audio/*,video/*,image/*" />

+1

Cảm ơn .. Nhưng làm cách nào để khắc phục sự cố cho IE ?? –

+6

Bạn không sửa chữa. Đó là điều bạn không kiểm soát được. Chỉ cần làm cho nó rõ ràng trong giao diện người dùng mà những gì người dùng nên chọn là một hình ảnh, và xác nhận nó ở phía máy chủ. Đó là những gì "File tải lên nên được xác nhận trên máy chủ" có nghĩa là. –

+0

Điều này làm cho mp4 không thể chọn trong Safari. Bạn cũng cần phải xác định 'video/mp4'. –

0

Bạn có thể sử dụng chấp nhận thuộc tính cùng với Nó không làm việc trong IE và Safari

Tùy thuộc vào quy mô dự án và khả năng mở rộng của bạn, bạn có thể sử dụng Struts Struts cung cấp hai cách để giới hạn loại tệp được tải lên, khai báo và lập trình ly.

Để biết thêm thông tin: http://struts.apache.org/2.0.14/docs/file-upload.html#FileUpload-FileTypes

0

Thêm một thuộc tính tùy chỉnh để <input type="file" file-accept="jpg gif jpeg png bmp"> và đọc tên tập tin trong javascript phù hợp với phần mở rộng được cung cấp bởi các thuộc tính file-accept. Đây sẽ là loại không có thật, vì một tệp văn bản có bất kỳ phần mở rộng nào ở trên sẽ bị xóa nhầm dưới dạng hình ảnh.

0
<asp:FileUpload ID="FileUploadExcel" ClientIDMode="Static" runat="server" /> 
<asp:Button ID="btnUpload" ClientIDMode="Static" runat="server" Text="Upload Excel File" /> 

.

$('#btnUpload').click(function() { 
    var uploadpath = $('#FileUploadExcel').val(); 
    var fileExtension = uploadpath.substring(uploadpath.lastIndexOf(".") + 1, uploadpath.length); 

    if ($('#FileUploadExcel').val().length == 0) { 
     // write error message 
     return false; 
    } 

    if (fileExtension == "xls" || fileExtension == "xlsx") { 
     //write code for success 
    } 
    else { 
     //error code - select only excel files 
     return false; 
    } 

}); 
+0

@slavoo ~ chắc chắn để sử dụng ASP đầu vào OP sẽ cần phải chạy ASP? Tại sao bổ sung trong chỉnh sửa của bạn? Câu trả lời của UserAK47 không yêu cầu họ. – Pebbl

+1

@pebbl Mở các bản sửa đổi của bài đăng này và chuyển sang 'đánh dấu bên cạnh 'trên bản sửa đổi số 2, bạn có thể thấy đầu vào asp ở đây trước khi chỉnh sửa, nhưng không hiển thị, bởi vì nó được tạo từ mã định dạng. Tôi chỉ sửa định dạng. – slavoo

+1

@slavoo ~ ah có ý nghĩa ... nếu không tôi sẽ có mặc dù bạn hơi lẻ :) ty để làm rõ. – Pebbl

45

này sẽ cung cấp chính xác bộ lọc (tùy chỉnh) khi hộp thoại tập tin đang hiển thị:

<input type="file" accept=".jpg, .png, .jpeg, .gif, .bmp, .tif, .tiff|images/*"> 
Các vấn đề liên quan