2013-06-10 39 views
13

Có thể tải tệp lên trong symfony2 KHÔNG sử dụng học thuyết không? Với giáo lý, ví dụ của nó được đưa ra ở đây: http://symfony.com/doc/2.2/cookbook/doctrine/file_uploads.htmlsymfony2 cách tải tệp lên mà không có học thuyết?

Có cách đơn giản để tải lên tệp, như trong PHP chính chúng ta có hàm move_uploaded_file() mà chúng ta có thể di chuyển tệp được tải lên sau khi biểu mẫu được gửi.

Đối với bây giờ khi tôi gửi biểu mẫu trong symfony đây là những gì tôi nhận được trong mục 'files' đề nghị mảng (Symfony \ Component \ HttpFoundation \ Request)

[files] => Symfony\Component\HttpFoundation\FileBag Object 
     (
      [parameters:protected] => Array 
       (
        [upload_cover] => Symfony\Component\HttpFoundation\File\UploadedFile Object 
         (
          [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
          [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => secret_of_success.png 
          [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/png 
          [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 157958 
          [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 
          [pathName:SplFileInfo:private] => C:\xampp\tmp\php3636.tmp 
          [fileName:SplFileInfo:private] => php3636.tmp 
         ) 

       ) 

     ) 

Trả lời

33

Sau khi nộp đơn, di chuyển tập tin vào thư mục bạn muốn và bạn sẽ nhận được một đối tượng File.

foreach($request->files as $uploadedFile) { 
    $name = //... 
    $file = $uploadedFile->move($directory, $name); 
} 

Hãy xem the API-Manual để xem tài liệu đầy đủ tính năng của lớp học này.

+0

cảm ơn câu trả lời, làm cách nào tôi có thể tạo objecct $ uploadfile, như thế này $ uploadfile = new \ Symfony \ Component \ HttpFoundation \ File \ UploadedFile(); – Rahul

+0

Sau khi gửi biểu mẫu, chúng sẽ nằm trong các tập tin '$ request->;'. Vì vậy, bạn có thể lặp qua mảng này và di chuyển mọi tệp bạn đã gửi ở địa điểm đầu tiên. – devsheeep

+0

Nếu tôi sử dụng ở trên cho vòng lặp, có vẻ như chỉ tải lên tệp tạm thời, tôi đã chọn png để tải lên trong thư mục tải lên tôi thấy tệp tạm thời được tải lên không phải tệp png image tạm thời có tên php483.tmp. Am i thiếu cái gì ở đây? – Rahul

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