Avatar billede budda Nybegynder
24. januar 2006 - 22:38 Der er 23 kommentarer og
1 løsning

Gennemsøge mappe efter filer der er ens

Ja jeg søger en funktion der kan gennem kører en mappe og liste alle de filer der er ens.
Altså indholdet.

Den skal så kun beholde den fil der først blev uploadet til serveren.

Nogen der kan hjælpe mig??
Avatar billede Slettet bruger
24. januar 2006 - 22:48 #1
Hvis det er et upload system, kan du bruge funktionen http://dk.php.net/file_exists til at tjekke om filen eksisterer, før du uploader den.
Avatar billede showsource Seniormester
25. januar 2006 - 00:12 #2
is_file() bør det så nok være, da file_exists() også accepterer dirs
Avatar billede budda Nybegynder
25. januar 2006 - 10:10 #3
Jeg tænker nu mere på indholdet..
Ikke selve navnet.
Avatar billede Slettet bruger
25. januar 2006 - 11:44 #4
Avatar billede budda Nybegynder
25. januar 2006 - 12:15 #5
Pacroon hvad skal jeg bruge den funktion til??
Avatar billede fireflashx Nybegynder
25. januar 2006 - 15:23 #6
Filnavne med samme indhold returnerer samme md5-sum.

Lav en løkke med opendir hvor du kører alle filerne igennem og tilsvarende laver md5_file på dem og gemmer summen. Så kan du bagefter sammenligne de forskellige summer for at se om nogen er ens.
Avatar billede budda Nybegynder
25. januar 2006 - 20:52 #7
ja men hvordan ville man så angribe det?

Need ideas :)
Avatar billede Slettet bruger
26. januar 2006 - 01:41 #8
$default_dir = "/dir/med/filerne/";
$dir = dir($default_dir);

while($file = $dir->read()) {
    $files[] = $file;
    }
$dir->close();

Nu har du samlet alle dine filnavne i arrayet $files.

Så kan du lave noget á la dette, hvis vi siger at den uploadede fil er i $uploaded_file

$uploaded_file_md5sum = md5_file($uploaded_file);

for($i=0; $i < count($filenames); $i++) {
    if (md5_file($default_dir.$filenames[$i]) == $uploaded_file_md5sum) {
        dir("File already exists!");
    } else {
        // Upload din fil
    }
}
?>

Det skal dog lige siges jeg ikke har testet den sidste metode. Det kan være du lige skal rette ifsætningens kriterier lidt til, så den får en rigtig sti til filen.

Håber det hjalp.

--
pacroon
Avatar billede Slettet bruger
26. januar 2006 - 01:41 #9
Hov,  count($filenames) i forløkken skal så være  count($files)
Avatar billede Slettet bruger
26. januar 2006 - 01:42 #10
og if (md5_file($default_dir.$filenames[$i]) == $uploaded_file_md5sum) {
skal så være
if (md5_file($default_dir.$files[$i]) == $uploaded_file_md5sum) {


Beklager :)
Avatar billede budda Nybegynder
26. januar 2006 - 18:44 #11
pacroon ja men så udelukker jeg vel at i stedet for at skrive "File already exists" at kunne skrive filens navn der er en kopi?

Og bliver det listet efter dato??
Avatar billede budda Nybegynder
26. januar 2006 - 18:54 #12
Altså eks Smuk_Pige[3].jpg
Avatar billede budda Nybegynder
26. januar 2006 - 19:01 #13
Hov glem min kommentar :)
Tak :)
Avatar billede budda Nybegynder
26. januar 2006 - 19:03 #14
Må jeg hører hvor god denne teknik er hvis vi antager jeg har ca 1 upload i min ??

Så kommer der hurtigt mange billeder
Avatar billede Slettet bruger
26. januar 2006 - 19:22 #15
Hov, det skulle heller ikke være "dir("File already exists!");" men "die("File already exists!");"

Utroligt :)
Avatar billede budda Nybegynder
26. januar 2006 - 19:57 #16
Jeg har et lille problem.
Jeg kan ikke få md5_file til at virke.

Jeg har en fil fra en form men den kan jeg ikke få md5 summen for.

Har prøvet med følgende:
$uploaded_file_md5sum = md5_file($Filen[tmp_name]);

Hvad kan gøres?
Avatar billede Slettet bruger
26. januar 2006 - 20:01 #17
Sender du fra en form som kalder den uploadede fil for dette?
Avatar billede budda Nybegynder
26. januar 2006 - 20:09 #18
Ja nemlig. Men har gennerelt problemer med at hente info ud fra $Filen.

Tror det er min funktion den er gal med for når jeg kalder:
$Filen[type] = C
$Filen[tmp_name] = C

Hvilket for mig virker underligt...
Avatar billede Slettet bruger
26. januar 2006 - 20:11 #19
Må jeg se scriptet?
Avatar billede budda Nybegynder
26. januar 2006 - 20:13 #20
Well det fylder meget men tager det vigtige:

Siden man kommer til efter man har trykket "GOGOGO" :)
if($_POST[File1]){
FinalPicUpload($_POST[File1]);
}

Den henter så funktionen..

Som så fejler
Avatar billede budda Nybegynder
26. januar 2006 - 20:14 #21
Funktionen:
FinalPicUpload($Filen){
if($Filen["type"] == "image/jpg" || $Filen["type"] == "image/pjpeg" || $Filen["type"] == "image/jpg") {
$ImgType = "jpeg";
} elseif($Filen["type"] == "image/x-png" || $Filen["type"] == "image/png") {
$ImgType = "png";
} elseif($Filen["type"] == "image/gif") {
$ImgType = "gif";
}
else {
    $Error = ERROR_IMAGE_TYPE."<br>";
}
//En masse rezise pis :)
}
Avatar billede budda Nybegynder
26. januar 2006 - 20:15 #22
Kort hvad jeg bruger $Filen til.

Ingen grund til at spamme forummet
Avatar billede budda Nybegynder
27. januar 2006 - 12:24 #23
Har løst problemet glemte:
enctype="multipart/form-data" i formen :/

<-- n00b?
Avatar billede Slettet bruger
27. januar 2006 - 17:33 #24
Vi lærer vel altid af vores fejl :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester