php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.02.2005, 21:00  
Gast
 
Beiträge: n/a
Standard Uploadproblem

Hy,
ich habe da letztens ein Uploadscript gefunden, er funktionier auch wunderbar nur beim speichern der Datei gibt der Script der Datei ein zufällig ausgewählten Namen: "hg7237usm38"

Ich möchte gerne das der Name aber so ist: "Spielname [uploaduhrzeit]"

Uploadzeile
Code:
<tr>
    <td class="uprow">Projekt</td>
    <td class="uprow"><input class="upfileform" type="file" name="UPFILE[]" size="20"></td>
</tr>
Uploadcode:
Code:
<?php
$picpfad = '******';
$URL = '******';
$erlaubte_uploads = 1;
$max_upl_size = 8192000;
$arr_erlaube_dateityp = array(zip,rar,ace,exe);

echo $output = preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templ/upheader.html"));

if (!isset($_POST['PICUPLOAD'])) {

	
uploadformausgabe();

} else {

$erlaubte_extensionen = join(', ',$arr_erlaube_dateityp);

for ($i=0; $i<count($_FILES['UPFILE']['name']); $i++) {

if ($_FILES['UPFILE']['name'][$i] == '') {
continue;
}

$File = strtr(stripslashes($_FILES['UPFILE']['name'][$i]), '\'" |\\/?!*:#', '___________');

$punkt = strrpos($File, '.');
$laenge = strlen($File);
$endung = strtolower(substr($File, -($laenge - $punkt - 1)));
$dname = substr($File, 0, -($laenge - $punkt - 1));

if (!in_array($endung, $arr_erlaube_dateityp)) {
fehlerausgabe("Die Dateiendung $endung ist nicht erlaubt");
continue;
}

if ($_FILES['UPFILE']['size'][$i] > ($max_upl_size * 1024)) {
$zugross = round($_FILES['UPFILE']['size'][$i]/1024, 2);
fehlerausgabe("Datei zu gro&szlig;");
continue;
}

switch($_FILES['UPFILE']['error'][$i]) {
	case 0:
	break;
	case 1:
	fehlerausgabe("Die Datei ist zu gross");
	continue 2;
	break;
	case 2:
	fehlerausgabe("Die Dateigr&ouml;&szlig;e  &uuml;bersteigt das erlaubte Limit von $max_upl_size KB");
	continue 2;
	break;
}

$dateipfad_name = $picpfad.$File;

$rand_value = randomize($File);
$newfilenamekompl = "$rand_value.$endung";
$savename = $picpfad.$newfilenamekompl;

if(@move_uploaded_file($_FILES['UPFILE']['tmp_name'][$i], $savename)) {

if (isset($arr_erlaube_dateityp) and in_array($endung, $arr_erlaube_dateityp)) {

$show_uploadokfiles  .= "$File gespeichert als: 
<a href=\"$URL/$newfilenamekompl\" target=\"_blank\">$newfilenamekompl</a>
";
}

chmod($savename, 0777);

} else {
fehlerausgabe("Kann Datei nicht speichern");
}
}


if (isset($errors) and count($errors)>0) {
Uploadfehler($errors);
}

if ($show_uploadokfiles != '') {
echo  preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templ/upok.html"));
}

if (!file_exists($picpfad)) {
echo "Zielverzeichnis $picpfad nicht gefunden
";
} elseif (!is_writable($picpfad)) {
echo "Zielverzeichnis $picpfad nicht beschreibar
";
clearstatcache();
} else {
echo "<a href=\"index.php\">Zum Uploadformular zur&uuml;ck</a>";
}

}

echo $output = preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templ/upfooter.html"));

function randomstring($dateiname) {
$dateiname = strtolower(substr(md5(microtime()),0,25));
return $dateiname; 
}

function tparser($tmplname) {
$lines = implode("",file($tmplname));
return $lines;
}

function uploadformausgabe() {
global $erlaubte_uploads, $zeige_uploadrechte, $max_upl_size;


if ($_SERVER['QUERY_STRING'] !== '') {
$action = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
} else {
$action = $_SERVER['PHP_SELF'];
}

$max_upl_size_out = $max_upl_size * 1024;			
			
$dateicount = 0;
for ($i=0; $i<$erlaubte_uploads; $i++) {
$dateicount++;
$uploadrowout .= preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templ/upfilerow.html"));
}

$show_uploadlimitationen = zeige_uploadlimits();
$uploadformhtml = preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templ/uptable.html"));

echo $uploadformhtml;
}

function Uploadfehler($errors) {

foreach($errors as $file => $message) {
$show_noupload .="[*] $file: $message.
";
}
$show_uploadlimitationen = zeige_uploadlimits();
echo  preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templ/upfehler.html"));
}

function zeige_uploadlimits() {
global $arr_erlaube_dateityp, $max_upl_size;

$erlaubte_extensionen = join(', ',$arr_erlaube_dateityp); 

if ($max_upl_size > 1024) {
$maximum = round(($max_upl_size / 1024), 2) . "MB";
} else {
$maximum = "$max_upl_size KB";
}
return "Dateigr&ouml;&szlig;enlimit: 8,0 MB
Erlaubte Dateiendungen: $erlaubte_extensionen";
}

function fehlerausgabe($message, $delete = false) {
global $errors, $File, $dateipfad_name;

$errors[$File] = $message;

if ($delete == true) {
unlink($dateipfad_name);
}
}
?>
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.02.2005, 22:30  
Gast
 
Beiträge: n/a
Standard

grr... mach den code farbig!
PHP-Code:
<?php
$picpfad 
'******';
$URL '******';
$erlaubte_uploads 1;
$max_upl_size 8192000;
$arr_erlaube_dateityp = array(zip,rar,ace,exe);

echo 
$output preg_replace("/<__(\w.+?)__>/e""\$\\1"tparser("templ/upheader.html"));

if (!isset(
$_POST['PICUPLOAD'])) {

   
uploadformausgabe();

} else {

$erlaubte_extensionen join(', ',$arr_erlaube_dateityp);

for (
$i=0$i<count($_FILES['UPFILE']['name']); $i++) {

if (
$_FILES['UPFILE']['name'][$i] == '') {
continue;
}

$File strtr(stripslashes($_FILES['UPFILE']['name'][$i]), '\'" |\\/?!*:#''___________');

$punkt strrpos($File'.');
$laenge strlen($File);
$endung strtolower(substr($File, -($laenge $punkt 1)));
$dname substr($File0, -($laenge $punkt 1));

if (!
in_array($endung$arr_erlaube_dateityp)) {
fehlerausgabe("Die Dateiendung [b]$endung[/b] ist nicht erlaubt");
continue;
}

if (
$_FILES['UPFILE']['size'][$i] > ($max_upl_size 1024)) {
$zugross round($_FILES['UPFILE']['size'][$i]/10242);
fehlerausgabe("Datei zu gro&szlig;");
continue;
}

switch(
$_FILES['UPFILE']['error'][$i]) {
   case 
0:
   break;
   case 
1:
   
fehlerausgabe("Die Datei ist zu gross");
   continue 
2;
   break;
   case 
2:
   
fehlerausgabe("Die Dateigr&ouml;&szlig;e  &uuml;bersteigt das erlaubte Limit von $max_upl_size KB");
   continue 
2;
   break;
}

$dateipfad_name $picpfad.$File;

$rand_value randomize($File);
$newfilenamekompl "$rand_value.$endung";
$savename $picpfad.$newfilenamekompl;

if(@
move_uploaded_file($_FILES['UPFILE']['tmp_name'][$i], $savename)) {

if (isset(
$arr_erlaube_dateityp) and in_array($endung$arr_erlaube_dateityp)) {

$show_uploadokfiles  .= "[b]$File[/b] gespeichert als: 
<a href=\"$URL/$newfilenamekompl\" target=\"_blank\">$newfilenamekompl</a>
"
;
}

chmod($savename0777);

} else {
fehlerausgabe("Kann Datei nicht speichern");
}
}


if (isset(
$errors) and count($errors)>0) {
Uploadfehler($errors);
}

if (
$show_uploadokfiles != '') {
echo  
preg_replace("/<__(\w.+?)__>/e""\$\\1"tparser("templ/upok.html"));
}

if (!
file_exists($picpfad)) {
echo 
"[b]Zielverzeichnis $picpfad nicht gefunden[/b]
"
;
} elseif (!
is_writable($picpfad)) {
echo 
"[b]Zielverzeichnis $picpfad nicht beschreibar[/b]
"
;
clearstatcache();
} else {
echo 
"<a href=\"index.php\">Zum Uploadformular zur&uuml;ck</a>";
}

}

echo 
$output preg_replace("/<__(\w.+?)__>/e""\$\\1"tparser("templ/upfooter.html"));

function 
randomstring($dateiname) {
$dateiname strtolower(substr(md5(microtime()),0,25));
return 
$dateiname;
}

function 
tparser($tmplname) {
$lines implode("",file($tmplname));
return 
$lines;
}

function 
uploadformausgabe() {
global 
$erlaubte_uploads$zeige_uploadrechte$max_upl_size;


if (
$_SERVER['QUERY_STRING'] !== '') {
$action $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
} else {
$action $_SERVER['PHP_SELF'];
}

$max_upl_size_out $max_upl_size 1024;         
         
$dateicount 0;
for (
$i=0$i<$erlaubte_uploads$i++) {
$dateicount++;
$uploadrowout .= preg_replace("/<__(\w.+?)__>/e""\$\\1"tparser("templ/upfilerow.html"));
}

$show_uploadlimitationen zeige_uploadlimits();
$uploadformhtml preg_replace("/<__(\w.+?)__>/e""\$\\1"tparser("templ/uptable.html"));

echo 
$uploadformhtml;
}

function 
Uploadfehler($errors) {

foreach(
$errors as $file => $message) {
$show_noupload .="[*] $file: $message.
"
;
}
$show_uploadlimitationen zeige_uploadlimits();
echo  
preg_replace("/<__(\w.+?)__>/e""\$\\1"tparser("templ/upfehler.html"));
}

function 
zeige_uploadlimits() {
global 
$arr_erlaube_dateityp$max_upl_size;

$erlaubte_extensionen join(', ',$arr_erlaube_dateityp);

if (
$max_upl_size 1024) {
$maximum round(($max_upl_size 1024), 2) . "MB";
} else {
$maximum "$max_upl_size KB";
}
return 
"[b]Dateigr&ouml;&szlig;enlimit[/b]: 8,0 MB
[b]Erlaubte Dateiendungen[/b]: $erlaubte_extensionen"
;
}

function 
fehlerausgabe($message$delete false) {
global 
$errors$File$dateipfad_name;

$errors[$File] = $message;

if (
$delete == true) {
unlink($dateipfad_name);
}
}
?>
 
Alt 24.02.2005, 22:33  
Gast
 
Beiträge: n/a
Standard

Hast das jetzt nur Farbig gemacht oder gleich geändert?
 
Alt 24.02.2005, 22:35  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von SilverVegeto
Hast das jetzt nur Farbig gemacht oder gleich geändert?
nur farbig
 
Alt 25.02.2005, 12:10  
Gast
 
Beiträge: n/a
Standard

Hat keiner eine Lösung?
 
Alt 25.02.2005, 12:22  
Gast
 
Beiträge: n/a
Standard

Das solltest du nach deinen Wünschen anpassen:

$rand_value = randomize($File);
$newfilenamekompl = "$rand_value.$endung";
$savename = $picpfad.$newfilenamekompl;

Gruß
phpfan
 
Alt 27.02.2005, 10:16  
Gast
 
Beiträge: n/a
Standard

Ja, aber dafür müsste ich wissen wie ich erfahre wie die Datei heißt, die der User uploadet.

Zitat:
<input class="upfileform" type="file" name="UPFILE[]" size="20">
Ich kann ja nicht $upfile[] machen, da kommt immer ein Fehler. Habt ihr eine Lösung?

mfg,
SilverVegeto
 
Alt 27.02.2005, 10:26  
Gast
 
Beiträge: n/a
Standard

Warum müsstest du das bitte Wissen???

PHP-Code:


//das Rausschmeissen:
//$rand_value = randomize($File);
//$newfilenamekompl = "$rand_value.$endung";


$savename $picpfad."spielname_".time().$endung
Oops schon wieder vorgekaut...
 
Alt 27.02.2005, 11:04  
Gast
 
Beiträge: n/a
Standard

Also deins ging leider nicht.
Habe dann das gemacht:
Zitat:
$savename = $picpfad.$File." [".date('H:i:s')."]";
Geht wunderabr nur wird die Datei jetzt als Binärcode angezeigt, sprich ich kann die Datei nicht öffnen.
 
Alt 27.02.2005, 19:10  
Gast
 
Beiträge: n/a
Standard

Ich glaube ihr versteht mein Problem nicht so ganz, wenn ich den folgenden Code einsetzte:
PHP-Code:
$savename $picpfad.$File." [".date('H:i:s')."]"
Wird die Datei zwar upgeloadet (gespeichert) aber nicht als normale .exe Datei gespeichert.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
if(!in_array($dateiendung, $erlaubt)), $lines = implode(\\,file($tmplname));

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.