Zum Inhalt springen

Datei upload


Empfohlene Beiträge

Hallo !

Ich habe einen datei upload... Dieser Funktioniert auch soweit ! Nur files die über 2 Mb betragen werden nicht übertragen !

Das max file size ist auf 20 mb eingestellt sowohl im script auch als auf dem server !!

Ich hab auch schon mal in mein script ein set_time_limit eingefügt da ich meine das scheint das Problem zu sein. Was es auch ist !

Ich weiß nur nicht wo das problem ist. Vielleicht hat mein script fehler. Wäre schön wenn mir jemand helfen könnte und mir sagen könnte wie ich das set_time_limit richtig setze !

Ich hab es auch schon auf eine andere weisse probiert, indem ich die pdfs in der datenbank speichere, es ging nur beim auslesen hat das pdf fehler gehabt.

Ich kann auch nicht an den server, da es der Firmen server ist !

Danke ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein ftp oder so ist nicht möglich Q da auf dem server alle webs von unseren kunden liegen und wir die hosten ! ja hab mit dem admin auch schon mal auf den server geschaut zwecks Fehlermeldung, dort kann er mit dem tmp_name nix so richtig anfangen. Was ich nicht verstehe da es bei kleinen dateien funzt. es soll für kunden möglich sein, pdfs up zu loaden oder bilder !

Naja hier mal das script (ist nicht ganz sauber, beinhaltet noch das löschen ! aber funzt soweit.) :


<?
@session_start();
if(!$userid):
header("Location: ../index.phtml?erreurS=2");
else:
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../text_ie.css">
</head>
<body bgproperties="fixed" background="../hintergrund2.jpg">
<u>Amtsblatt PDF Upload</u>
<!-- Formulardaten zur Auswahl der Datei und des sendens an den php-script Teil -->

<form action="<?php print $PHP_SELF ?>"
method="post" enctype="multipart/form-data">
<p align="left"><input type="hidden" name="MAX_FILE_SIZE" value="20000000">
<input type="file" name="dateiname">
<input type="submit" value="Übertragen">
</form>


<hr>
<?php
//Datei anzeigen
$uverz="../../rathaus/amtsblatt";
echo" <form action=\"erase.php\" method=POST name=daten>";
echo "<h2>Bisher hochgeladene Dateien</h2>";
$i=1;
$verzeichnis=opendir($uverz);
echo"<select name=id size=10% style=width:200px>";
while ($file = readdir($verzeichnis))
{
if(is_file($uverz."/".$file))
{
echo "<option value=>$file</option>";
$file=urlencode($file);
$i++;
}
}
echo" </select>";

closedir($verzeichnis);
echo" <input maxlength=30 type=Submit name=loe value=\" Löschen \"> ";
echo"</form>";

//Datei upload
$dateiname = $_FILES[dateiname][name];
$tmp_name = $_FILES[dateiname][tmp_name];
set_time_limit(600);

if (!isset($dateiname)) {exit;}

if(!is_uploaded_file($tmp_name)) {
echo 'Fehler!<br><ul>';
switch ($_FILES[dateiname][error]) {
case 1: echo "<li>Die Datei konnte nicht übertragen werden."; break;
case 2: echo "<li>Die Datei überschreitet die maximale Größe von $_POST[MAX_FILE_SIZE] Bytes."; break;
}
exit;
}
endif;

$uploadname ="./rathaus/amtsblatt/$dateiname";
move_uploaded_file($tmp_name, $uploadname);
echo"Die Datei wurde gespeichert !<br>\n";
echo "<meta http-equiv=\"refresh\" content=\"1;url=upload.php\">";
?>

</body>
</html>
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein ftp oder so ist nicht möglich Q da auf dem server alle webs von unseren kunden liegen und wir die hosten ! ja hab mit dem admin auch schon mal auf den server geschaut zwecks Fehlermeldung, dort kann er mit dem tmp_name nix so richtig anfangen. Was ich nicht verstehe da es bei kleinen dateien funzt. es soll für kunden möglich sein, pdfs up zu loaden oder bilder !

Naja hier mal das script (ist nicht ganz sauber, beinhaltet noch das löschen ! aber funzt soweit.) :

in deinem code sind auf den ersten blick ein paar dinge drinnen die so nicht funktionieren können, bzw. nur mit dem apache webserver so funktionieren...


<?
@session_start();
if(!$userid):
header("Location: ../index.phtml?erreurS=2");
else:
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../text_ie.css">
</head>
<body bgproperties="fixed" background="../hintergrund2.jpg">
<u>Amtsblatt PDF Upload</u>
<!-- Formulardaten zur Auswahl der Datei und des sendens an den php-script Teil -->

<form action="<?php print $PHP_SELF ?>"
method="post" enctype="multipart/form-data">
<p align="left"><input type="hidden" name="MAX_FILE_SIZE" value="20000000">
<input type="file" name="dateiname">
<input type="submit" value="Übertragen">
</form>


<hr>
<?php
//Datei anzeigen
$uverz="../../rathaus/amtsblatt";
echo" <form action=\"erase.php\" method=POST name=daten>";
echo "<h2>Bisher hochgeladene Dateien</h2>";
$i=1;
$verzeichnis=opendir($uverz);
echo"<select name=id size=10% style=width:200px>";
while ($file = readdir($verzeichnis))
{
if(is_file($uverz."/".$file))
{
echo "<option value=>$file</option>";
$file=urlencode($file);
$i++;
}
}
echo" </select>";

closedir($verzeichnis);
echo" <input maxlength=30 type=Submit name=loe value=\" Löschen \"> ";
echo"</form>";

//Datei upload

// $dateiname = $_FILES[dateiname][name];
// $tmp_name = $_FILES[dateiname][tmp_name];
// hier fehlen die hochkommas
$dateiname = $_FILES["dateiname"]["name"];
$tmp_name = $_FILES["dateiname"]["tmp_name"];
set_time_limit(600);

if (!isset($dateiname)) {exit;}

if(!is_uploaded_file($tmp_name)) {
echo 'Fehler!<br><ul>';
switch ($_FILES["dateiname"]["error"]) {
case 1: echo "<li>Die Datei konnte nicht übertragen werden."; break;
// case 2: echo "<li>Die Datei überschreitet die maximale Größe von $_POST[MAX_FILE_SIZE] Bytes."; break;
// Diese Zeile kann der PHP Interpreter normalerweise nicht richtig interpolieren
case 2: echo "<li>Die Datei überschreitet die maximale Größe von " . $_POST["MAX_FILE_SIZE"] ."Bytes."; break;
}
exit;
}
endif;

$uploadname ="./rathaus/amtsblatt/$dateiname";
move_uploaded_file($tmp_name, $uploadname);
echo"Die Datei wurde gespeichert !<br>\n";
echo "<meta http-equiv=\"refresh\" content=\"1;url=upload.php\">";
?>

</body>
</html>
[/PHP]

das alles auf den ersten blick...

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

Ich will ja nicht drauf rumreiten, aber willst Du wirklich 20 MB große Datein per Web-Formular übertragen? Wenn die Internetseiten Deiner Kunden auf dem Server liegen, dann müssen sie ja irgendwie dahin gekommen sein, wahrscheinlich per FTP, SFTP oder SCP. Wie dem auch sei, die gleiche Datei-Übertragungsart könntest Du doch auch nutzen.

Ansonsten: Was für nen Fehler wird denn beim Übertragen von entsprechend großen Dateien ausgegeben?

Gruß, Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

FTP --- ist nicht drin , zum 2 mal ! Ja bis sogar 30 mb ist das uplimit gesetzt ! Und das muss sein ! Befehl von oben !

Fehlermeldung : Nur wenn die daten über paar mb haben,dann kommt das die meldung das er mit dem tmp_name (siehe script) nicht klar kommt ?!

Ach jungs...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...