Dateiupload funktioniert mit Netscape nicht...
Georg
- php
Moin Leute,
hab da ein Problem, bei dem es Eurer Hilfe bedarf. Und zwar habe ich ein Formular, dort kann ein Bild (Datei) hochgeladen werden, was dann auf dem Server gespeichert werden soll... mit IE 6 funktioniert auch alles bestens nur leider gibt der Netscape immer folgende Fehlermeldung aus:
Warning: Unable to open 'pulm.jpg' for reading: No such file or directory in c:\programme\easyphp\www\intern\php_scripte\createf.php on line 406
das Problem ist, dass die Datei nicht kopiert wird und das weiterfolgende script dann das Bild nicht auf dem Server findet...
Meinermeinung nach funktioniert die copy Funktion da nicht...
html Form:
<input name="Datei" type="file" size="25" maxlength="25000" accept="*.*">
script:
$Datei_neu = basename($Datei);
.
.
.
if (!empty ($Datei)){
copy($Datei,$Datei_neu);
}
Wär nett wenn ihr mir da weiterhelfen koenntet...
Schon mal besten Dank, ciao Georg.
Huhu Georg
evtl. fehlt auch nur im öffnenden FORM-Tag des Formulares das "action"-Attribut ?
Viele Grüße
lulu
Hallo Lulu,
Nene, das steht schon drin, sonst wuerds mit dem IE ja auch nicht funktionieren... daran kanns also nicht liegen.
Du must im Form-Tag unbeding folgende Anweisung stehen haben:
enctype="multipart/form-data"
Wenn diese nicht drin steht geht es bei mir allerdings auch mit dem IE nicht, wäre aber mal ein Ansatz.
greets
myMojito
tach auch
Warning: Unable to open 'pulm.jpg' for reading: No such file or directory in c:\programme\easyphp\www\intern\php_scripte\createf.php on line 406
was steht denn in line 406 so?
übergibst du variablen per url?
netscape kommt mit einigen zeichen in der url nicht klar.
schilder mal etwas genauer den aufbau deines skriptes ...
Hi Peppy,
also in Zeile 406 steht der copy Befehl
if (!empty ($Datei)){
copy($Datei,$Datei_neu);
}
das script soll in erster Linie eine dynamisch erzeugte HTML Seite auf dem Server speichern und die Datei (Bild) in den entsprechenden Ordner kopieren.. (das Bild wird in die Seite mit eingebunden)
dei Fehlermeldung bezieht sich aber nach meiner Meinung auf eine andere Stelle im script, nämlich da, wo das gespeicherte Bild im vom Script erzeugten Html code aufgerufen wird. wurde es nicht hochgeladen, fehlt es dann natürlich und kann nicht angezeigt werden.
Es kann sein, dass Netscape den Dateinamen nicht verkraftet, wenn der z.B. heisst
"Bild von Peppy.jpg" möglicherweise stören da ja die Leerzeichen...?!?
Der Formular code sieht folgendermassen aus:
<input name="Datei" type="file" size="25" maxlength="25000" accept="*.*">
Es taucht dann in dem Formular eben ein "Druchsuchen" Button auf in dem dann die URL des gewünschten Bildes steht..
Hab ich Dir das jetzt besser verständlich machen können? Ich hoffs...
Danke, Georg.
if (!empty ($Datei)){
copy($Datei,$Datei_neu);
}
versuch es mal mit
if($Datei){copy($Datei,$Datei_neu);}
poste mal den ganzen code, oder schick ihn mir zu, falls er zu lang ist
Hallo Peppy, danke für Deinen Einsatz!
hier der wesentliche Teil des scripts...
<?
$alles='
<html> <head> <title>'; $alles.=$typ; $alles.='</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="../../../../pe.css">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="608" cellspacing="0" cellpadding="0" border="0">
<tr height="30"> <td width="16" height="30" rowspan="20"> </td> <td colspan="2" height="30"><span class="pfadangabeoben">Studium > '; $alles.=$typ; $alles.=' > '; $alles.=$ablage; $alles.=' </span></td> </tr> <tr> <td colspan="2" class="titel" height="20">';
$alles.=$Titel; $alles.='<br><div style="font-size:10pt">'; $alles.=$typ; $alles.='</div></td> </tr> <tr> <td colspan="2"><br><br></td> <tr> <tr> <td colspan="2" class="text"><div class="textfettnormal">Aufgabenstellung:</div><br>';
if (!empty($Datei)) { $alles.='<img src="'; $Datei_neu = basename($Datei); $alles.=$Datei_neu; $alles.='" width="200" height="120" align="right" vspace="10" hspace="20">'; }
$alles.="<div align="justify">"; $alles.=$Text; $alles.="</div>";
$alles.='</td> </tr> <tr> <td colspan="2"><br><br></td> </tr> <tr> <td width="300" class="text"><div class="textfettnormal">Voraussetzungen:</div> <br>';
$alles.=$Voraussetzungen1; $alles.='<br>'; $alles.=$Voraussetzungen2; $alles.='<br>'; $alles.=$Voraussetzungen3; $alles.='</td> <td width="300" class="text"><div class="textfettnormal">Art der Arbeit:</div><br> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td>';
if ($art1) $alles.='<img src="../../../../sonstiges/images/true.jpg">'; else $alles.='<img src="../../../../sonstiges/images/false.jpg">'; $alles.='</td><td width="20"> </td><td class="text">konstruktiv</td> </tr> <tr> <td>'; if ($art2) $alles.='<img src="../../../../sonstiges/images/true.jpg">'; else $alles.='<img src="../../../../sonstiges/images/false.jpg">'; $alles.='</td><td width="20"> </td><td class="text">theoretisch</td> </tr> <tr> <td>'; if ($art3) $alles.='<img src="../../../../sonstiges/images/true.jpg">'; else $alles.='<img src="../../../../sonstiges/images/false.jpg">'; $alles.='</td><td width="20"> </td><td class="text">experimentell</td> </tr> </table> </td> </tr> <tr> <td colspan="2"><br><br></td> </tr> <tr> <td class="text" colspan="2"><div class="textfettnormal">Ansprechpartner:</div><br>';
$alles.=$Name; $alles.='<br>'; $alles.=$Raum; $alles.='<br>'; $alles.=$Tel; $alles.='<br>'; $alles.=$eMail; $alles.='</td> </tr> <tr> <td colspan="2"><br></td> </tr> </table>
</body> </html>';
///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$path="../../studium/".$typ."/".$ablage;
if (!empty($typ)&&!empty($ablage)&&!empty($Titel)) { chdir($path);
if (mkdir($Titel,0777)){ chdir($Titel); if (!empty ($Datei)){ copy($Datei,$Datei_neu); } $Titel_print=$Titel."_print.html"; $Titel.=".html";
$fp = fopen($Titel, 'w'); // Datei öffnen fwrite($fp,$alles); // schreiben fclose($fp); // schliessen
$fp = fopen($Titel_print, 'w'); // Datei öffnen jetzt für die Druckversion fwrite($fp,$alles2); // schreiben fclose($fp); // schliessen
echo $alles1; // Ausgabe an den Browser } else{ echo "<html> <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="../../pe.css"> </head><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="608" cellspacing="0" cellpadding="0" border="0"> <tr height="30"> <td width="16" height="30" rowspan="20"> </td> <td class="titel">Speichern fehlgeschlagen!</td></tr> <tr><td class="texttabelle"><br><br><img src="../../sonstiges/images/pfeil.gif" width="9" height="9"><a href="javascript:history.back()" class="texttabelle">zurueck</a><br><br>(Es existiert bereits ein Dokument mit diesem Namen! Bitte den Namen aendern.)</td></tr></table></body></html>"; } }
else{ echo "<html> <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="../../pe.css"> </head><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><br><br> <table width="608" cellspacing="0" cellpadding="0" border="0"> <tr height="30"> <td width="16" height="30" rowspan="20"> </td> <td class="titel">Speichern fehlgeschlagen!</td></tr> <tr><td class="texttabelle"><br><br><img src="../../sonstiges/images/pfeil.gif" width="9" height="9"><a href="javascript:history.back()" class="texttabelle">zurueck</a><br><br>(Fehler beim Ausfuellen des Formulars! Beachten Sie die rot gekennzeichneten Bereiche.)</td></tr></table></body></html>"; }
?>
und nun noch das Formular:
<html> <head> <title>Eingabe</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="../../pe.css">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="608" cellspacing="0" cellpadding="0" border="0">
<tr height="30"> <td width="16" height="30" rowspan="2"></td> <td colspan="4" height="30"><span class="pfadangabeoben">Intern > Dipl_erstellen</span></td> </tr> <tr> <td class="titel" height="20" colspan="4">Eingabemaske</td> </tr> </table>
<form action="../php_scripte/createf.php" methode="post" enctype="multipart/form-data"> <table width="608" cellspacing="0" cellpadding="0" border="0">
<tr> <td width="16" height="30" rowspan="30"></td> <td class="textfettnormal" valign="top" width="200">Typ der Arbeit:<br><div style="color:#FF0000;font-size:10px">muss belegt werden!</div></td> <td class="text"><input type="radio" name="typ" value="Diplomarbeiten" checked> Diplomarbeit<br> <input type="radio" name="typ" value="Semesterarbeiten"> Semesterarbeit<br> <input type="radio" name="typ" value="Hiwi"> HiWi Stelle </td> </tr> <tr height="30"> <td ></td> <td> </td> </tr> <tr> <td class="textfettnormal">Titel:<br><div style="color:#FF0000;font-size:10px">muss belegt werden!</div></td> <td><input name="Titel" type="text" size="50" maxlength="100"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td class="textfettnormal" valign="top">beschreibender Text:</td> <td><textarea name="Text" cols="50" rows="10" wrap="virtual"></textarea></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td class="textfettnormal" valign="top">Voraussetzungen:</td> <td><input name="Voraussetzungen1" size="30" maxlength="30"><br> <input name="Voraussetzungen2" size="30" maxlength="30"><br> <input name="Voraussetzungen3" size="30" maxlength="30"> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td class="textfettnormal" valign="top">Art der Arbeit:</td> <td class="text"><input type="checkbox" name="art1" value="konstruktiv"> konstruktiv<br> <input type="checkbox" name="art2" value="theoretisch"> theoretisch<br> <input type="checkbox" name="art3" value="experimentell"> experimentell </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td class="textfettnormal" valign="top">wird abgelegt unter:<br><div style="color:#FF0000;font-size:10px">muss belegt werden!</div></td> <td class="text"><input type="radio" name="ablage" value="konstruktiv"> konstruktiv<br> <input type="radio" name="ablage" value="theoretisch"> theoretisch<br> <input type="radio" name="ablage" value="experimentell"> experimentell </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td class="textfettnormal" valign="top">Ansprechpartner:</td> <td> <table> <tr><td class="text">Name:</td><td><input name="Name" type="text" size="50" value="Dipl. Ing." maxlength="50"></td> <tr><td class="text">Raum:</td><td><input name="Raum" type="text" size="50" value="Raum:" maxlength="50"></td> <tr><td class="text">Tel:</td><td><input name="Tel" type="text" size="50" value="089/289 151 53" maxlength="50"></td> <tr><td class="text">eMail:</td><td><input name="eMail" type="text" size="50" value="@pe.mw.tum.de" maxlength="50"></td> </table> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td class="textfettnormal" valign="top">Bild-Upload:</td> <td class="text"><input name="Datei" type="file" size="25" maxlength="25000" accept="."><div style="color:#FF0000;font-size:10px"><br>Breite: 200px<br>Höhe: 120px</div></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td class="textfettnormal">Formular:</td> <td> <input type="submit" value="Absenden"> <input type="reset" value="Abbrechen"> </td> </tr> </form> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td><img src="../../sonstiges/images/pfeil.gif" width="9" height="9" border="0"><a href="../optionen.html" class="texttabelle">zurück zu Optionen</a></td> </tr> <tr> <td> </td> <td> </td> </tr>
</table> </body> </html>
gut, gut.....
fangen wir mal anders an.
wenn du im netscape das bild versuchst hochzuladen,
klappt irgendwas nicht.
hast du mal nach dem du das bild hochgeladen hast geschaut, wie
es auf dem server aussieht?
vielleicht ist das bild ja auf dem server. dann klappt deine copy-
funktion ja schonmal.
wenn nicht, dann schau mal, ob das bild wirklich auf dem server ist
(oder zumindest da wo es seien soll) wenn du im ie6 das bild hochläds. könnte auch gut sein, dass der ie da irgendwelche faxen macht :-)
übrigens: in welchem netscape klappt es nicht?
hast du das ganze online, so das man das vielleicht testen kann?
ich persönlich schreibe meine dateien in der art:
<?
echo "
<html>
<head>
<title>$titel</title>
</head>
<body>
$text
</body>";
?>
ob es richtiger ist, wie du es machst ist eine gute frage,
allerdings finde ich meine art übersichtlicher.....
hi peppy,
hast du mal nach dem du das bild hochgeladen hast geschaut, wie
es auf dem server aussieht?
vielleicht ist das bild ja auf dem server. dann klappt deine copy-
funktion ja schonmal.
das Bild ist nicht da, wird also nicht dahin kopiert (im IE funktioniert es, das heisst das Bild ist da... wie gesagt, im IE klappt alles wie gewünscht.)
übrigens: in welchem netscape klappt es nicht?
netscape 7.0 (glaub ich... oder so, aber sehr neu, weiss jetzt nicht genau, weil ich ihn nur an der uni benutze und hier zu hause nur den IE)
hast du das ganze online, so das man das vielleicht testen kann?
leider nein...
ich persönlich schreibe meine dateien in der art: ...
mach ich eigentlich auch zumindest im grossen und ganzen, sieht doch im post auch so aus, oder??? zumindest bei mir...
netscape 7.0 (glaub ich... oder so, aber sehr neu, weiss jetzt nicht genau, weil ich ihn nur an der uni benutze und hier zu hause nur den IE)
da kommen wir der sache ja schon näher.
könnte es vielleicht an irgendwelchen sicherheitseinstellungen
des pc oder des netscapes auf der uni ligen?
ich kenne es, dass die da immer besonders gut auf alle möglichen
sicherheiten achten.
der nächste schritt wäre jetzt mal bei netscape vorbeizusurfen
und sich den netscape 6 oder 7 für zuhause runterzuladen und
dann nochmal fleissig weitertesten.
und dann bitte nochmal posten ob es klappt oder nicht.
Hi,
hab nochmal nen richtigen Standardnamen ausprobiert wie
Bild.jpg
aber auch das funktioniert nicht,... der Fehler muss also wo anders liegen. Vielleicht hast Du ja noch ne Idee...