Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF2][SF] Problem z uploadem pliku bez wykorzystania encji
Forum PHP.pl > Forum > PHP > Frameworki
swiezak
Witam.
Probuje zaimplementowac do swojego projektu formularz, ktorego zadaniem jest upload pliku bez wykorzystania encji. Jednak napotykam na blad, ktorego nie wiem jak sie pozbyc.

Na chwile obecna mam taki kod:

form.html.twig
  1. <form action="{{ path('upload_csv') }}" class="form-horizontal col-md-12" method="post" {{ form_enctype(form) }}>
  2. {{ form_widget(form) }}
  3.  
  4. <div class="form-group">
  5. <div class="col-md-offset-5 col-md-9">
  6. <button type="submit" name="subvalider" class="btn btn-primary"><span class="glyphicon glyphicon-save"></span> Wyślij</button>
  7. </div>
  8. </div>
  9. </form>


Fragment z kontrolera:
  1. // Upload pliku CSV
  2. public function uploadCSVAction() {
  3. $request = $this->getRequest();
  4.  
  5. $form = $this->createFormBuilder()
  6. ->add('csv', 'file', array('label' => 'Plik CSV z danymi'))
  7. ->getForm();
  8.  
  9. if ($request->getMethod() == 'POST') {
  10. $form->handleRequest($request);
  11.  
  12. if ($form->isValid()) {
  13. //$file = $form->get('file')->getData(); // jesli odkomentuje te linie, ponizsza zakomentuje otrzymuje blad: "Child "file" does not exist. "
  14. $file = $form->getData(); // jesli odkomentuje te linie, a powyzsza zakomentuje: "Error: Call to a member function getClientOriginalName() on a non-object "
  15.  
  16. $name = $file->getClientOriginalName();
  17. $dir = $this->getUploadDir();
  18.  
  19. $file->move($dir, $name);
  20.  
  21. return new Response('1');
  22. } else {
  23. $this->get('session')->getFlashBag()->add('danger', "Podczas przetwarzania formularza wystąpiły błędy.");
  24.  
  25. return $this->render('MlBackendBundle:ImportProducts:form.html.twig', array(
  26. 'form' => $form->createView(),
  27. ));
  28. }
  29.  
  30. } else {
  31. return $this->render('MlBackendBundle:ImportProducts:form.html.twig', array(
  32. 'form' => $form->createView(),
  33. ));
  34. }
  35. }



Obiekt $form->getData() jest nastepujacy:
  1. array(1) { ["csv"]=> object(Symfony\Component\HttpFoundation\File\UploadedFile)#13 (7) { ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(32) "brodziki-prostokatne-szablon.csv" ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(24) "application/vnd.ms-excel" ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(10602) ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> string(24) "C:\xampp\tmp\phpB4DF.tmp" ["fileName":"SplFileInfo":private]=> string(11) "phpB4DF.tmp" } }


Czy ktos z Was jest w stanie mi podpowiedziec, co robie zle i w jaki sposob dokonac poprawek?
Bede wdzieczny za pomoc.
destroyerr
Cytat
// jesli odkomentuje te linie, ponizsza zakomentuje otrzymuje blad: "Child "file" does not exist. "

A masz w formularzu pole o nazwie "file"?
swiezak
Jesli chodzi o kod HTML formularza, to jest on nastepujacy:
  1. <form action="/projekty/shop/web/app_dev.php/backend/import-csv" class="form-horizontal col-md-12" method="post" enctype="multipart/form-data">
  2. <div id="form">
  3. <div class="form-group">
  4. <label class="col-sm-2 control-label required" for="form_csv">Plik CSV z danymi</label>
  5. <div class="col-sm-10"><input type="file" id="form_csv" name="form[csv]" required="required" /></div>
  6. </div>
  7. <input type="hidden" id="form__token" name="form[_token]" class="form-control" value="ezWgm0rnTcfuGotq7oFg3x_FeboilSjmnpYrk2eYoIE" /></div>
  8.  
  9. <div class="form-group">
  10. <div class="col-md-offset-5 col-md-9">
  11. <button type="submit" name="subvalider" class="btn btn-primary"><span class="glyphicon glyphicon-save"></span> Wyślij</button>
  12. <a href="/projekty/shop/web/app_dev.php/backend/products/" class="btn btn-success"><span class="glyphicon glyphicon-share-alt"></span> Powrót</a>
  13. </div>
  14. </div>
  15. </form>



Jak zwykle szkolny blad popelnilem. Zamiast file w formsie bylo csv i stad byl problem.

Dzieki Kolego za zwrocenie uwagi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.