Avatar billede flash-man Nybegynder
07. oktober 2003 - 16:54 Der er 16 kommentarer og
1 løsning

Upload af billede?

Hejsa Eksperter!!

Jeg fandt dette script på en side, til uploadning af billeder, men jeg kan ikke rigtig få det til at virke...

<form enctype="multipart/form-data" method="post"  action="<? echo $PHP_SELF ?>">
Billed<br>
<input type="file" name="billede" size="20">
<br><br>
<input type="submit" name="submit" value="Upload">
</form>
<?
if ($submit) {
    exec("cp $billede images/$billede_navn");
    echo "temp file: $billede<br>\n";
    echo "file name: $billede_navn<br>\n";
    echo "<br>\n";
    echo "<img src=images/$billed_navn><br>\n";
} ?>

Når jeg trykker "Upload" får jeg denne besked...

temp file: C:\WINDOWS\TEMP\php15.tmp
file name:

og et lille rødt x (manglende billede)

Vil gerne have lidt hjælpe til at få scriptet til at virke..
Avatar billede sqren Nybegynder
07. oktober 2003 - 17:46 #1
Er ikke så god til PHP, men jeg brugte dette script og det funker fint:
http://www.zachwhite.com/dl/download.pl?file=uploaddownload.zip
Avatar billede sqren Nybegynder
07. oktober 2003 - 17:48 #2
Andre Upload scripts
http://www.zachwhite.com/scripts.htm


Lad mig lige høre Har du din egen server?
Avatar billede sqren Nybegynder
07. oktober 2003 - 17:50 #3
Hvis du har skal du måske ændre i php.ini filen (eller så noget) og ændre en eller anden temp fil. Det ser ud som om det er der den er gal.

Og når du højre klikker på billede->egenskaber
Hvilken adresse viser den så til billedet? Hvad skulle den rigtige adresse være?
Avatar billede thomas.k Nybegynder
07. oktober 2003 - 18:16 #4
Stien i php.ini til temp-filer er sikkert i orden. Det er nok meget værre med det dit script gør:
  exec("cp $billede images/$billede_navn");
Scriptet forsøger at udføre en kommando, fuldstændig som det gøres fra en kommandolinje, og det fejler tydeligvis.

I dette tilfælde skal den midlertidige fil (C:\WINDOWS\TEMP\php15.tmp) kopieres til en folder (images/) ved hjælp af kommandoen "cp".  Jeg ved ikke om denne kommando findes i Windows, jeg mener at den hedder "copy". Dernæst er Windows normalt ikke så glad for "/", normalt bør "\" benyttes. Prøv derfor at udskifte ovenstående linje i scriptet med:
  exec("copy $billede images\$billede_navn");

Og nu hvor du alligevel er inde for at tjekke din c:\windows\php.ini, så prøv at se efter om PHP kører i "safe mode". I så fald er der også grænser for, hvor du kan få lov at udføre komandoer. Men det kan vi jo vende tilbage til...
Avatar billede tkandersen Nybegynder
08. oktober 2003 - 00:59 #5
Davs

Grundet filnavne med mellemrum ville jeg lave exec om til:
exec("cp $billede 'images/$billede_name'");

Også det $billede_navn - sikker på det ikke skal være engelsk:
$billede_name ? (husk: du har $billede_navn stående 2 steder).
Avatar billede thomas.k Nybegynder
08. oktober 2003 - 07:51 #6
Hvis formularfeltet hvor billedet anvendes hedder 'billede_navn' er det helt fint at kalde det sådan. Ideen med anførselstegn er helt fin.
Avatar billede thomas.k Nybegynder
08. oktober 2003 - 08:12 #7
Næh, der var jeg lidt for hurtig. Hvis formularfeltet hedder 'billede' vil PHP returnere $billede_name som navnet på billedet. Desuden er det nok vigtigt at tjekke stavningen:
$billed_navn er ikke det samme som $billede_navn (eller -name, som anført...)

Det er rimeligt let at tjekke om kopieringen (og den samtidige omdøbning) af billedet er gået godt. Det er jo bare at kigge i folderen 'images' om billedet er kommet på plads dér.
Avatar billede thomas.k Nybegynder
08. oktober 2003 - 08:17 #8
Altså: Hvis du ændreer lidt i din kode, til sådan:

<?
if ($submit) {
  exec("copy $billede 'images\$billede_navn'");
  echo "
    temp file: $billede<br>
    file name: $billede_navn<br>
    <br>
    <img src=images/$billede_navn><br>
  ";
} ?>

Så burde den være der. Senere kan du måske udvide funktionen til selv at tjekke om kopieringen går godt, om filtypen er korrekt, om filstørrelsen er i orden osv. Men få nu upload funktionen til at virke først.
Avatar billede thomas.k Nybegynder
08. oktober 2003 - 08:19 #9
Dammit, det er tidligt om morgenen. I ovenstående skal der selvfølgelig stå "_name" i stedet for "_navn" :-)
Avatar billede flash-man Nybegynder
08. oktober 2003 - 08:34 #10
jeg tror jeg forstod pointen, og takker for al jeres hjælp...

Men tænkte på, om man har nogen mulighed for at ændrer i filnavnet før man uploader det? altså så det kom til at hedde eks. pic_x.jpg (x = er den række i MySQL databasen, hvor billedet er blevet tilføjet)?
Avatar billede flash-man Nybegynder
08. oktober 2003 - 08:36 #11
Nåh ja... og dem der føler de er points værdige, opret lige et svar :D
Avatar billede sqren Nybegynder
08. oktober 2003 - 12:35 #12
Du kan også prøve at bruge Windows versionen:
http://www.zachwhite.com/dl/download.pl?file=winupdown.zip
Avatar billede thomas.k Nybegynder
08. oktober 2003 - 13:07 #13
Hvis billedet _er_ oprettet i databasen og har fået et ID, f.x. $billede_id, så kan du jo prøve følgende:

<?
if ($submit && $billede_id > 0) {
  $picture = "pic_".$billede_id.".jpg"; 
  exec("copy $billede $picture);
  echo "
    temp file: $billede<br>
    file name: $picture<br>
    <br>
    <img src='".$picture."'><br>
  ";
} ?>
Avatar billede thomas.k Nybegynder
08. oktober 2003 - 13:09 #14
PS: Så længe point ikke kan bruges til at betale biografbilletter, rødvin og bøffer, så er jeg ligeglad.
Avatar billede flash-man Nybegynder
08. oktober 2003 - 13:48 #15
thomas.k > kan godt li dinb indstilling til points, har det på samme måde, men der er mange der går meget op i det...

Scriptet er jo til at uploade et billede, og hvis man uploader filen c:\hej.jpg så får man filen i sin billedmappe "hej.jpg" men hvis man gerne vil have at den skal blive omdøbt til pic_x.jpg samtidig med at billede bliver oprettet i databasen..

Og i det heletaget bare omdøbe billedet, før det bliver lagt ind i mappen..

er det det du gør med dit script (har ikke prøvet det endnu)? eller er har jeg ikke mistforstået det..? hmm.. kunne godt lyde forkert, men jeg går ud fra at du forstår..
Avatar billede flash-man Nybegynder
08. oktober 2003 - 13:49 #16
og samtidig... kan man få den til at lave en thumbnail (eller, hvordan man nu staver det) samtidig med at man uploader billedet?
Avatar billede flash-man Nybegynder
22. oktober 2003 - 16:03 #17
ok... fandt et script på nettet der kunne lave det, men du skal have tak for din hjælp til scriptet!
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