Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF2][SF] Problem z uploadem pliku bez wykorzystania encji
swiezak
post 21.02.2016, 09:36:26
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

Ostrzeżenie: (0%)
-----


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.

Ten post edytował swiezak 21.02.2016, 09:41:34
Go to the top of the page
+Quote Post
destroyerr
post 21.02.2016, 10:06:37
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Cytat
// jesli odkomentuje te linie, ponizsza zakomentuje otrzymuje blad: "Child "file" does not exist. "

A masz w formularzu pole o nazwie "file"?
Go to the top of the page
+Quote Post
swiezak
post 21.02.2016, 10:13:37
Post #3





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

Ostrzeżenie: (0%)
-----


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.

Ten post edytował swiezak 21.02.2016, 10:18:51
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 10:12