2013-08-23 42 views
19

trình điều khiển của tôi nhận được dữ liệu bài đăng. Nó không phải từ một biểu mẫu được tạo bởi Symfony, mà từ một biểu mẫu tùy chỉnh AngularJS sử dụng FormData.Cách tải tệp lên mà không có biểu mẫu

Thông số bình thường được nhận bình thường trong túi thông số yêu cầu, nhưng làm cách nào để tải tệp lên? Tôi có cần phải tự làm giống như biểu mẫu của handleRequest không?

Tài liệu của tôi giống như cookbook article.

Vì vậy, tôi cần phải nhận được một UploadFile từ bài yêu cầu để gọi phương pháp này trên thực thể tài liệu:

public function setFile(UploadedFile $file = null)

Làm thế nào để nhận được tải lên bằng tay trong Symfony 2 (mà không sử dụng xây dựng hình thức trong dù sao)?

Trả lời

37

Các Request có FileBag, tương tự như ParameterBag

Vì vậy, tôi có thể nhận được một file nào đó một cách dễ dàng với:

$data = $this->getRequest()->request->all(); 
$file = $this->getRequest()->files->get('file'); 

và sử dụng tài liệu như là từ sách dạy nấu ăn:

$document = new Document(); 
$document->setFile($file); 
$lead->setDocument($document); 
+0

Tôi làm cách nào để đặt nội dung của túi tệp? Tôi đang sử dụng 'https: // github.com/kriswallsmith/Buzz/blob/master/lib/Buzz/Browser.php' và tôi phải gửi yêu cầu POST với bộ túi tệp. Tôi có fileObj trong mã của tôi. Tôi đã sử dụng phương thức 'is_file()'. –

+0

bạn có thể trả lời câu hỏi của tôi không? Tôi đang đối mặt với cùng một vấn đề ở đây là câu hỏi của tôi. https://stackoverflow.com/q/44352796/1395965 – numerah

+1

'$ this-> getRequest()' dường như không được dùng nữa kể từ 2.4 và bị loại bỏ trong 3.0. '$ request-> files-> get ('filename')' làm việc cho tôi – Dheeraj

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