Bin zu blöd dafür, bekomme das nie hin ;(
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] upload script Problem
Einklappen
Neue Werbung 2019
Einklappen
X
-
Zitat von Humpy Beitrag anzeigenBin zu blöd dafür, bekomme das nie hin ;(
Kommentar
-
PHP-Code:<?php
$max_byte_size = 10000;
$allowed_types = "(sft)";
if($_POST["submit"] == "Upload") {
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {
if($_FILES["file"]["size"] <= $max_byte_size) {
$filename = $_FILES['file']['name'];
$extension = end(explode(".", $filename)); // extension ist die Dateiendung.
$filename = substr($filename, 0, strlen($filename) - strlen($extension) - 1);
$temp = $_FILES['datei']['tmp_name'];
for ($i = 1; file_exists("upload-ordner/$filename.$extension"); $i++) {
$filename = $filename . ' (' . $i . ')';
}
if(move_uploaded_file($_FILES["file"]["tmp_name"], $filename)) {
echo "Datei erfolgreich hochgeladen!<br>";
echo "Name: " . $_FILES["file"]["name"] . "<br>";
echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
echo "Link: <a href=\"" . $_FILES["file"]["name"] . "\">" . $_FILES["file"]["name"] . "</a>";
}
else {
echo "Datei konnte nicht hochgeladen werden.";
}
}
else {
echo "Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.";
}
}
else {
echo "Die Datei besitzt keine ungültige Endung.";
}
}
else {
echo "Keine Datei zum Hochladen angegeben.";
}
}
else {
echo "Bitte benutze das Upload Formular.";
}
?>
Auf jeden Fall bekomme ich keine Fehlermeldung aber der ersetzt dann halt die Datei und macht keinen neuen Namen.
hmmm.......
Kommentar
-
wenn er sie ersetzt, dann hast du eine Datei "getroffen" - wenn du dann nicht überschreiben willst, musst du den Namen noch etwas ändern - vielleicht eine "_1" anhängen oder so ..."Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]
Kommentar
-
Zitat von eagle275 Beitrag anzeigenwenn er sie ersetzt, dann hast du eine Datei "getroffen" - wenn du dann nicht überschreiben willst, musst du den Namen noch etwas ändern - vielleicht eine "_1" anhängen oder so ...
PHP-Code:/* Schreibst dein Upload Script.
Nach dem Uploaden schaust du mit dieser for-Schleife, ob die Datei ($filename) schon existiert. Wenn ja, mache aus "dateiname.jpg" dann "dateiname (1).jpg".
Wenn das aber auch schon existiert, dann "dateiname (2).jpg". */
Kommentar
-
sorry - hab erst jetzt den Code "da oben" genauer gelesen..
die mittlere Code-Sektion muss bei dir so aussehen
PHP-Code:$temp = $_FILES['datei']['tmp_name'];
for ($i = 1; file_exists("upload-ordner/$filename.$extension"); $i++) {
$filename = $filename . ' (' . $i . ')';
}
if(move_uploaded_file($_FILES["file"]["tmp_name"],"upload-ordner/".$filename.".".$extension )) {
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]
Kommentar
-
nöö .. das passt so .. nur der verlinkte Name muss natürlich auf deine geänderte Datei zeigen
<a href="Linkziel">Beschriftung</a>
du kannst es dir aber erleichtern, wenn du
HTML-Ausgabe immer mit Apostroph machst
PHP-Code:echo 'Link: <a href="uploads/'.$filename.'.'.$extension.'" >'.$_FILES["file"]["name"].'</a>';
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]
Kommentar
-
Danke Danke jetzt geht alles
edit: Da fällt mir grad ein wie kann ich das machen das ich den ganzen link habe also www.domain.de/uploads/Datei.png
statt das da nur steht Datei.png
Danke schon mal.
edit: Habs selber herausgefunden
Kommentar
-
So Leute hab 2 Probleme.
1. Wenn ich eine Datei mit Punkten z.B. Bla.bla.bla.png Uppe kann ich die nacher nicht mehr downlaoden.
2. Wenn ich was geuppt habe und bei der Seite bin wo mir der Link gezeigt wird und ich F5 drücke wird die Datei nochmal geuppt also Datei (1) etc. wie kann ich das Problem lösen??
Danke schon mal.
mfg
Humpy
Kommentar
-
die Beschriftung des Links steht zwschen Link und schließenden <a-Tag <a href >Beschriftung</a> und grundsätzlich kannst du dorthin fast alles schreiben, sogar Bilder mit einbinden ...
wenn du dort also auch den kompletten Pfad haben willst ..
PHP-Code:echo 'Link: <a href="uploads/'.$filename.'.'.$extension.'" >uploads/'.$filename.'.'.$extension.'</a>';
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]
Kommentar
-
Zitat von Humpy Beitrag anzeigen1. Wenn ich eine Datei mit Punkten z.B. Bla.bla.bla.png Uppe kann ich die nacher nicht mehr downlaoden.
Aktuellen Code zeigen, und vor allem erklären, was „kann nicht mehr downloaden“ eigentlich konkret bedeuten soll.
2. Wenn ich was geuppt habe und bei der Seite bin wo mir der Link gezeigt wird und ich F5 drücke wird die Datei nochmal geuppt also Datei (1) etc. wie kann ich das Problem lösen??[SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]
Kommentar
-
Zitat von ChrisB Beitrag anzeigenBitte beschreibe das Problem nachvollziehbar.
Aktuellen Code zeigen, und vor allem erklären, was „kann nicht mehr downloaden“ eigentlich konkret bedeuten soll.
[...]PHP-Code:<?php
$max_byte_size = 10000;
$allowed_types = "(sft)";
if($_POST["submit"] == "Upload") {
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {
if($_FILES["file"]["size"] <= $max_byte_size) {
$filename = $_FILES['file']['name'];
$extension = end(explode(".", $filename)); // extension ist die Dateiendung.
$filename = substr($filename, 0, strlen($filename) - strlen($extension) - 1);
$temp = $_FILES['datei']['tmp_name'];
for ($i = 1; file_exists("uploads/$filename.$extension"); $i++) {
$filename = $filename . ' (' . $i . ')';
}
if(move_uploaded_file($_FILES["file"]["tmp_name"],"uploads/".$filename.".".$extension )) {
echo "Datei erfolgreich hochgeladen!<br>";
echo "Name: " . $_FILES["file"]["name"] . "<br>";
echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
echo 'Link: <a href="uploads/'.$filename.'.'.$extension.'" >uploads/'.$filename.'.'.$extension.'</a>';
}
else {
echo "Datei konnte nicht hochgeladen werden.";
}
}
else {
echo "Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.";
}
}
else {
echo "Die Datei besitzt keine ungültige Endung.";
}
}
else {
echo "Keine Datei zum Hochladen angegeben.";
}
}
else {
echo "Bitte benutze das Upload Formular.";
}
Kommentar
-
Reload-Probleme kann dir wer anders bestimmt gut helfen
bei den punkten...
bevor du die Vergleiche mit preg_match machst, müsstest du alle Punkte bis auf den letzten irgendwie konvertieren .. bsp so
PHP-Code:if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
$fname = $_FILES['file']['name'];
$pos=strrpos($fname,"."); //der letzte Punkt
$fname=str_replace($fname,".","_"); // alle Punkte durch underscore ersetzen
$fname=substr($fname,0,$pos).".".substr($fname,$pos+1);
//letzten punkt wiehderherstellen
if(preg_match("/\." . $allowed_types . "$/i", $fname)) {
if($_FILES["file"]["size"] <= $max_byte_size) {
$extension = end(explode(".", $fname)); // extension ist die Dateiendung.
$fname = substr($fname, 0, strlen($fname) - strlen($extension) - 1);
$temp = $_FILES['datei']['tmp_name'];
for ($i = 1; file_exists("upload-ordner/$fname.$extension"); $i++) {
$fname = $fname . ' (' . $i . ')';
}
iif(move_uploaded_file($_FILES["file"]["tmp_name"],"upload-ordner/".$fname.".".$extension )) {
echo "Datei erfolgreich hochgeladen!<br>";
echo "Name: " . $_FILES["file"]["name"] . "<br>";
echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
echo 'Link: <a href="uploads/'.$fname.'.'.$extension.'" >uploads/'.$fname.'.'.$extension.'</a>';
}
else {
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]
Kommentar
-
Mein code lautet jetzt so
PHP-Code:// Wurde wirklich eine Datei hochgeladen?
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
$fname = $_FILES['file']['name'];
$pos=strrpos($filename,"."); //der letzte Punkt
$filename=str_replace($filename,".","_"); // alle Punkte durch underscore ersetzen
$filename=substr($fname,0,$pos).".".substr($filename,$pos+1);
//letzten punkt wiehderherstellen
if(preg_match("/\." . $allowed_types . "$/i", $fname)) {
if($_FILES["file"]["size"] <= $max_byte_size) {
$extension = end(explode(".", $fname)); // extension ist die Dateiendung.
$fname = substr($fname, 0, strlen($fname) - strlen($extension) - 1);
$filename = $_FILES['file']['name'];
$extension = end(explode(".", $filename)); // extension ist die Dateiendung.
$filename = substr($filename, 0, strlen($filename) - strlen($extension) - 1);
$temp = $_FILES['datei']['tmp_name'];
for ($i = 1; file_exists("uploads/$filename.$extension"); $i++) {
$filename = $filename . ' (' . $i . ')';
}
if(move_uploaded_file($_FILES["file"]["tmp_name"],"uploads/".$filename.".".$extension )) {
Geht aber immer noch net ;(
Kommentar
Kommentar