2013-01-10 39 views
11

Tôi có một đầu vào tập tin tùy chỉnh:Add giảm tập tin vào một tập tin đầu vào sử dụng jQuery

<div id="wrapper"> 
    <span id="fake-text-input"></span> 
    <button id="select-a-file"></button> 
    <input id="hidden-file-input" type="file" /> 
</div> 

Các input[type="file"] được ẩn (display: none) và chọn một tập tin được xử lý bằng cách lắng nghe \ kích hoạt các clickchange sự kiện.

Tôi cũng muốn hỗ trợ thả tệp. Tôi đã có thể nghe sự kiện drop khi tệp bị xóa trên #fake-text-input nhưng tôi không biết cách chuyển tiếp sự kiện drop tới input[type="file"] .. thậm chí có thể không?

Tôi không quan tâm đến tập tin đầu vào thủ đoạn opacity :)

$('body').on('drop', '#wrapper', function(e) { 
    var file = e.originalEvent.dataTransfer.files[0]; 

    // I have the file.. now what? 
}); 
+0

bạn có thể cung cấp mã lại những gì bạn đã thử? – insomiac

+0

Bạn nên xem SOq này. http://stackoverflow.com/questions/8006715/drag-drop-files-into-standard-html-file-input – cggaurav

+0

@insomiac nhìn vào chỉnh sửa của tôi. Không có nhiều mã mặc dù .. – tamir

Trả lời

12

này được làm việc với tôi trong google chrome, vấn đề bây giờ với các trình duyệt khác

$("input[type='file']").prop("files", e.originalEvent.dataTransfer.files); 
+3

, hãy cho tôi biết nếu bạn tìm thấy giải pháp – tamir

+0

@nassimPHP, bạn có tìm thấy giải pháp không? –

Các vấn đề liên quan