28. februar 2004 - 18:00
Der er
13 kommentarer og 2 løsninger
unikke uploadfiler
hvordan laves unikke uploadfiler, tænkte lidt på 20 tilfældige bogstaver foran filnavnet... nogen der har et bedre forslag ? under alle omstændigheder skal denne ændres... move_uploaded_file($_FILES["singlefile"]["tmp_name"], $dist . $_FILES["singlefile"]["name"]);
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
28. februar 2004 - 18:13
#1
Hvad med et timestamp (år, måned, dag, time, minut, sekund)? Det er da rimeligt unikt.
28. februar 2004 - 18:15
#2
Det skal selvfølgelig være serverens tid, der skal bruges...
28. februar 2004 - 18:28
#3
ja oki, men hvordan sættes det ind i move_uploaded_file($_FILES["singlefile"]["tmp_name"], $dist . $_FILES["singlefile"]["name"]);
28. februar 2004 - 18:32
#4
Enten: $unixtimestamp = time(); $fra = $_FILES["singlefile"]["tmp_name"]; $til = $dist . $_FILES["singlefile"]["name"]) . $unixtimestamp; move_uploaded_file($fra, $til); Eller også tjekker du om filen allerede findes, hvis den gør omdøber du den til 'filnavn_2' osv.
28. februar 2004 - 18:38
#5
<? if($submit) { mt_srand((double)microtime()*1000000); $unlen=20; $sn=""; $unchr="abcdefghjkmpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ123456789"; $chrlen=strlen($unchr); for ($n=1; $n<=$unlen; $n=$n+1) { $x=intval(($chrlen-1+1)*(mt_rand(0,10000000)/10000000)+1); $sn=$sn.substr($unchr,$x-1,1); } $uploaddir = "test/"; $uploadfile = "$uploaddir$sn".$_FILES['userfile']['name'].""; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "Billedet blev uploaded.<br><br>"; } else { print "Der skete en fejl.<br><br>"; } } ?> <form enctype="multipart/form-data" action="<?=$PHP_SELF;?>" method="post"> <input name="userfile" type="file"> <input type="submit" name="submit" value="Upload"> </form>
28. februar 2004 - 18:41
#6
den laver en parseerror i: $til = $dist . $_FILES["singlefile"]["name"]) . $unixtimestamp; Parse error: parse error, unexpected ')' in f:\content\upload.php on line 78
28. februar 2004 - 18:43
#7
hvis du skifter $uploadfile = "$uploaddir$sn.".$_FILES['userfile']['name'].""; ud med $uploadfile = "$uploaddir$sn".$_FILES['userfile']['name'].""; så får du et punktum efter random koden. altså f.eks: JuPT9DeZ6tNtp96K3sZR.filnavn.jpg
28. februar 2004 - 18:44
#8
$til = $dist . $_FILES["singlefile"]["name"] . $unixtimestamp;
28. februar 2004 - 18:44
#9
hov nej, det er jo omvendt. skift $uploadfile = "$uploaddir$sn".$_FILES['userfile']['name'].""; ud med: $uploadfile = "$uploaddir$sn.".$_FILES['userfile']['name']."";
28. februar 2004 - 18:49
#10
Denne duer ikke... $unixtimestamp = time(); $fra = $_FILES["singlefile"]["tmp_name"]; $til = $dist . $_FILES["singlefile"]["name"] . $unixtimestamp; move_uploaded_file($fra, $til);
28. februar 2004 - 19:09
#11
Nej, for jeg glemte lige, at det timestamp skal smides ind før extension (.), sorry.
28. februar 2004 - 19:26
#12
hvordan skal det så se ud ?
28. februar 2004 - 19:28
#13
Kan det ikke bare sættes ind foran filnavnet ?
28. februar 2004 - 19:55
#14
Jo, det kan det vel, har du prøvet ? $til = $dist . $unixtimestamp . $_FILES["singlefile"]["name"];
28. februar 2004 - 21:01
#15
kommer med en meddelse: Notice: Undefined index: singlefile in c:\usr\hp\content\upload.php on line 76 linie 76: move_uploaded_file($_FILES["singlefile"]["tmp_name"], $dist . $_FILES["singlefile"]["name"]);
Vi tilbyder markedets bedste kurser inden for webudvikling