CodeIgniter Von Post-Daten, die nicht durchgehen

8

Ich versuche einen Datei-Upload in CodeIgniter zu machen, aber wenn ich enctype="multipart form-data" hinzufüge, werden keine Post-Daten durchgehen. Überhaupt nicht einmal die anderen Felder. Wenn ich es jedoch nicht hinzufüge, kann ich die anderen Postdaten erhalten, aber natürlich keine Datei hochladen. Was läuft hier falsch? Hier ist meine Ansicht und Controller:

Anzeigen:

%Vor%

Controller enthält nur:

%Vor%

Ergebnis ist:

%Vor%     
b2000b 06.03.2011, 03:23
quelle

8 Antworten

3

Sie können dieses Formularattribut hinzufügen:
enctype="multipart/form-data;charset=utf-8"
Statt:
enctype="multipart/form-data"
Sie können diesen Link sehen.

    
Mustafa Magdi 14.11.2012 07:11
quelle
2

Tatsächlich werden die mehrteiligen Daten wie image / zip oder einige andere Blob-Daten in das Array $ _FILES und nicht in das Array $ _POST aufgenommen.
Ich empfehle Ihnen, die Upload-Bibliothek zu verwenden.

view: upload_form.php

%Vor%

view: upload_success.php

%Vor%

controller: upload.php

%Vor%

Und das ist alles

    
soasme 06.03.2011 07:21
quelle
2

Sie müssen Ihre do_upload korrigieren, so ...

%Vor%

Beispielsweise haben Sie in Ihrem Ansichtscode:

%Vor%

Also, Ihre do_upload -Zeile sollte so aussehen:

%Vor%

Saludos!

    
Nachzeher 29.08.2011 07:32
quelle
1

Interessant. Der Code, den du gepostet hast, sollte funktionieren. Ich habe ein schnelles Testskript unter Verwendung Ihres Formulars erstellt, und beide Daten $ _FILES und $ _POST kommen gut durch.

Ich habe diese vorherige Frage zu SO gefunden: PHP - Analyse von mehrteiligen Formulardaten

Es klingt wie das gleiche Problem, das Sie haben. Leider wurde für dieses Problem keine wirkliche Antwort gefunden. Ich würde denken, dass dies ein Serverkonfigurationsproblem sein könnte - können Sie den gleichen Code auf einem anderen Server versuchen und sehen, ob er funktioniert?

Das einzige andere bisschen Information, das ich finden kann, war in der Antwort auf diese Frage, $ _ POST-Daten werden leer zurückgegeben, wenn die Header & gt; POST_MAX_SIZE

Wenn Sie versuchen, eine zu große Datei hochzuladen, kann dies dazu führen, dass PHP die $ _POST-Daten ebenfalls wegwirft. Aber wenn Sie versucht haben, Ihr Formular zu senden, ohne eine Datei hochzuladen (aber immer noch "multipart / form-data"), und trotzdem keine $ _POST-Daten durchkommen sehen, trifft das nicht zu.

    
Eric G 06.03.2011 04:53
quelle
1

Ich hatte gerade das gleiche Problem. Ich habe es so gelöst. In application / config / config.php stellst du die base_url ein Bitte beachten Sie, dass diese URL genau die gleiche sein muss wie die, die Sie anrufen Ihre Web-App. Für mich habe ich meine Domain mit www.sdfsd.com angerufen, aber in der Konfigurationsdatei Ich schrieb Ссылка und der POST des Formulars funktionierte nicht. Also habe ich das geändert und jetzt funktioniert alles!

Prost

    
kon 25.11.2011 13:36
quelle
1

Überprüfen Sie, ob eine falsche Umleitung in der CI-Schicht möglich ist. Es könnte durch eine falsche URL-Anfrage verursacht werden (zB ein Schrägstrich '/' fehlt am Ende der URL). Umleitungen löschen alle POST-Daten (ich hatte damit zu tun).

Achten Sie also darauf, dass Sie vollständige URLs in der Formularaktion verwenden.

Überprüfen Sie auch Ihre .htaccess- und $config['uri_protocol'] -Konsistenz.

    
Carlos Adrián Morales 23.04.2011 05:58
quelle
0

Ich hatte dieses Problem auch. Ich stimme den obigen Antworten nicht zu. Ich denke, das Entscheidende ist, in welchem ​​Stadium Ihres Controllers Sie versuchen, die Postdaten zu bekommen. Vielleicht könnten Sie den relevanten Teil Ihres Controllers veröffentlichen. Ich habe festgestellt, dass sowohl die Post-Daten als auch die Upload-Daten erst nach dem Aufruf von

verfügbar werden %Vor%

Offensichtlich verwenden Sie eine if-Anweisung, um nach dem Erfolg zu suchen. Wenn erfolgreich,

%Vor%

gibt das Standardarray mit Informationen über die hochgeladene Datei und

zurück %Vor%

ist mit dem gefüllt, was Sie im entsprechenden Formularelement eingegeben haben.

    
DavidHyogo 23.01.2012 14:57
quelle
0

Ich hatte ein ähnliches Problem - Es stellt sich heraus, dass POST-Daten leer sind, wenn Sie die maximale Upload-Größe / maximale Post-Größe überschreiten. Diese Antwort behebt mein Problem und erlaubte mir, $ _POST und $ _FORM Daten zu sehen: $ _POST-Daten werden leer zurückgegeben, wenn die Header & gt; POST_MAX_SIZE

    
Michael Corrigan 18.03.2016 05:55
quelle

Tags und Links