Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datei upload

Empfohlene Antworten

Veröffentlicht

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 ...

Hm,

also ich mache so große Uploads immer mit

set_time_limit(0);

Damit gibt es kein Timeout mehr.

Allerdings würde ich keine 2 MB per Webupload hochladen...

Wenn es ein Firmenserver in der Firma in der du arbeitest ist, dann ruf doch den Admin an und frag ob Du vielleicht FTP oder SFTP machen kannst?

Gruß, Tobias

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]

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

Ist ja auch en Apache... bloß das wusste ich vorher und hilft mir nicht weiter. Und das Script funzt so nebenbei . Nut das time_out krieg ich nicht hin !!

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

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...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.