2012-02-22 23 views
13

Tôi đang cố gắng làm việc với plugin jquery-file-upload của blueimp. Có vẻ là người tải lên tốt nhưng tài liệu không hữu ích.plugin jquery-file-upload: Cách thay đổi đường dẫn tải lên?

Khi tôi làm việc với tập lệnh demo có thể tải xuống, tất cả đều ổn. Nhưng, khi tôi muốn thay đổi đường dẫn tải lên, điều đó không hiệu quả.

Tôi đã cố gắng để thay đổi, trong index.php, con đường hành động, như thế này:

form id="fileupload" action="../uploads/" method="POST" enctype="multipart/form-data" 

và thêm vào các thư mục "file" và "hình thu nhỏ" trong tôi "cập nhật" thư mục.

Cuộc gọi GET là ok, như tôi có thể nhìn thấy trong Firebug:

GET http://localhost/alliance_pretests/uploads/ 200 OK -8ms 

Nhưng khi tôi khởi hành động upload, POST trả lời tôi (vẫn còn trong Firebug):

POST http://localhost/alliance_pretests/uploads/ 404 Not Found 44ms 

tôi không thay đổi gì khác. Tôi đã quên gì?

Tại sao lệnh gọi GET thấy thư mục chứ không phải cuộc gọi POST?

Xin cảm ơn trước. Trân trọng.

+0

bạn đang sử dụng plugin này như thế nào? bạn đã thực hiện phía máy chủ hay sử dụng phiên bản Node.js? bạn cần cập nhật chương trình phụ trợ để chỉ định thư mục tải lên – ManseUK

Trả lời

18

Tác vụ biểu mẫu không phải là thư mục mà thư mục tải lên của bạn nên ở đó. Hành động biểu mẫu là tập lệnh nơi dữ liệu được gửi sau khi gửi. (xem thêm tại đây về các hành động biểu mẫu http://www.w3schools.com/tags/att_form_action.asp)

Thử tìm thư mục đích để tải lên hoặc xem bên trong tập lệnh cho điều đó.

Cập nhật: sau khi tải thư viện

Bạn nên nhìn vào máy chủ/php/upload.class.php và có bạn có một số biến xung quanh vị trí của thư mục upload:

'script_url' => $this->getFullUrl().'/', 
'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/', 
'upload_url' => $this->getFullUrl().'/files/', 

Tou nên thay thế /files/ bằng thư mục tải lên của riêng bạn.

+0

Tôi đã hiểu giải thích của bạn và đã thay đổi mã của tôi.Điều đó hoạt động tốt ngay bây giờ. Cảm ơn rất nhiều. Nhưng làm thế nào để khai báo một thư mục trên một cấp, như "../uploads"? Tôi đã thử nhưng nó dường như không hoạt động (lỗi JSON). – mlh

+1

Bạn đã sửa đổi nó như thế nào? Nó phải giống như 'upload_url' => '../ uploads/'' – Mike

+2

Nó không hoạt động vì tôi đã không loại bỏ $ này:' upload_url '=> $ this ->' ../ uploads/' Bây giờ nó là OK. Cảm ơn rất nhiều! – mlh

21

Mặc dù @mugur câu trả lời cung cấp là chính xác, nhìn vào lớp php cung cấp với các thư viện tham số đầu tiên trong phương pháp xây dựng là "lựa chọn" và bằng cách tuyên bố một mảng kết hợp như sau:

$options = array('upload_dir'=>'upload/directory/of/your/choice', 'upload_url'=>'upload/directory/of/your/choice'); 

và chuyển nó làm tham số đầu tiên khi khởi tạo lớp:

$upload_handler = new UploadHandler($options); 

Sẽ cho phép bạn thay đổi thư mục tải lên mỗi khi bạn sử dụng lớp thay vì thay đổi mã nguồn.

+0

Nhưng bạn thêm mã này ở đâu? Cảm ơn –

+2

Bạn phải thêm các tùy chọn này vào tệp nơi bạn đang khởi tạo lớp, nếu bạn đang sử dụng ví dụ thì đó là [index.php] (https://github.com/blueimp/jQuery-File-Upload/blob /master/server/php/index.php). Nó muốn tìm một cái gì đó như: 'error_reporting (E_ALL | E_STRICT); ' ' require ('UploadHandler.php');' '$ options = array ('upload_dir' => 'upload/thư mục/of/your/choice ', ' ' 'upload_url' => 'upload/directory/of/your/choice'); ' ' $ upload_handler = new UploadHandler ($ options); ' –

+0

Giá trị nào tôi nên cho 'upload_url' nếu tôi muốn tải lên các tệp của tôi bên ngoài thư mục' www'? – Adam

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