2011-01-03 17 views
1

ich immer einen Fehler bekommen: Hinweis: Undefined index: on line 35
Ich bekomme einen Fehler, wenn ich versuche, eine Datei hochzuladen?

Linie:

$handle = new Upload($_FILES['my_field']); 

das ist mein Eingabefeld

<input type="file" size="32" name="my_field" value="" /> 

ich nicht verstehe diesen Fehler, danke !!!

EDIT:

<form name="upload" id="upload" enctype="multipart/form-data" method="post" action="actions/upload.php" /> 
<p><input type="file" size="32" name="my_field" value="" /></p> 
<p class="button"><input type="hidden" name="action" value="image" /> 
<br> 
<input style="margin-left:224px;" type="submit" name="submit" value="upload" /> 
+0

Können Sie das vollständige HTML-Formular anzeigen? –

+0

yeh lass mich update es danke !! – getaway

+0

Sieht aus wie die Datei ist nicht wirklich hochgeladen immer Sie überprüfen, um zu sehen, sollte, wenn es erfolgreich erste is_uploaded_file ($ _ FILES [ 'my_filed'] [ 'tmp_name']) oder isset ($ _ FILES [ 'my_field']) hochgeladen bevor wir auf sie reagieren –

Antwort

2

Update: Die OP eine Ajax-Anfrage tun - gut, dass offensichtlich nicht mit einem Datei-Upload arbeiten kann.

Alte Antwort:

Ich glaube, ich es gefunden.

Betrachten Sie nah diesem tag:

<form name="upload" id="upload" enctype="multipart/form-data" method="post" 
action="actions/upload.php" /> 

das Schließen />schließt das Formular aus. Alles, was danach kommt, ist nicht in dieser Form - es ist in einer neuen, die der Browser wahrscheinlich erstellt, um mit dem gebrochenen Markup umzugehen. Diese neue Form ist nicht enctype=multipart/form-data.

+0

oh okay lass mich es versuchen !!! – getaway

+0

das ist wahr es funktioniert, also wie kann ich eine Datei durch eine Ajax Anfrage senden !!! +1 von mir ive gesehen Beispiele von Menschen, die Fotos durch jquery hochladen – getaway

+0

@getaway Verwenden Sie das jQuery-Formular-Plugin http://jquery.malsup.com/form/ –

2

Haben Sie verwenden enctype="multipart/form-data" auf dem Formular-Element?

Dies scheint der einzige Grund zu sein, dass der Schlüssel my_field nicht auf $_FILES gesetzt ist.

Edit: Wenn Ihre Datei größer als post_max_size ist, erhalten Sie auch eine leere $_FILES Array. auch

Siehe: Apache/PHP: $_FILES Array mysteriously empty

+0

Ich habe die kleinste Datei verwendet, und es funktioniert immer noch deosnt !!! – getaway

0

Um WITH mit einer Ajax-Einreichung hochladen zu können, können Sie einen IFRAME mit dem Upload-Teil verwenden.

  1. Senden Ajax Formular Vorlage
  2. mit JavaScript-Trigger() auf dem Upload-Formular in den IFRAME
  3. die Rückkehr Seite im iframe Haben einreichen auslösen eine Javascript vollständige Antwortfunktion auf der Hauptseite

Ein bisschen kompliziert, aber würde funktionieren. Sie benötigen einen Mechanismus, um sie miteinander zu verbinden. Wenn Sie zum Beispiel Informationen über das Bild senden, geben Sie in Schritt 1 die ID der Datenbankzeile zurück, in der diese Informationen gespeichert sind, damit das IFRAME-Uploadformular diese ID übermitteln kann um das Bild zu speichern.

Verwandte Themen