2012-04-14 28 views
7

Tôi đang cố gắng tích hợp tuyệt vời jquery-file-upload from blueimp vào Grails 2.0 và viết một plugin mới cho điều đó. Tôi biết có already a plugin nhưng không sử dụng tài nguyên và nó chưa được cập nhật trong 9 tháng và việc tải lên tệp jquery đã thay đổi rất nhiều trong thời gian đó.Tải lên nhiều tệp trong Grails

Vì vậy, tôi đặt tất cả các tệp phân phối trong plugin của mình và giờ tôi đang cố viết một hành động điều khiển có thể xử lý việc tải lên. Vấn đề là request.getFileNames() chỉ cho tôi một mục nhập files[] và tôi không biết cách truy xuất 3 tệp riêng lẻ mà tôi đang tải lên.

Làm cách nào để bạn xử lý các tệp được gửi bởi một đầu vào như thế này: <input type="file" name="files[]" multiple>?

Trả lời

2

request.getFileNames trả về mảng - bạn có thể lặp qua mảng này để lấy tất cả các tệp. Ví dụ đã có trên mô tả plugin.

def all = request.getFileNames() 
all.each {name -> 
    def file = request.getFile(name) 
} 

Điều này sẽ cung cấp cho bạn tất cả các tệp đã được tải lên.

4

Thực ra tôi đã tìm ra. Chỉ có một input[type=file] trong biểu mẫu và nếu tôi chọn một số tệp, chúng sẽ không được gửi cùng một yêu cầu. Kịch bản query-file-upload gửi bao nhiêu yêu cầu POST vì có tệp. Đó là lý do tại sao request.getFileNames() chỉ cho tôi một mục mỗi lần. Tôi đã quản lý để tạo plugin của mình, plugin sẽ sớm được xuất bản. Xem ra cho http://grails.org/plugin/bootstrap-file-upload.

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