Fil Upload

Tags:    php

<< < 123 > >>
Hej.
Jeg går og mangler et fil upload system.
Jeg har ledt hist og her, men har ikke fundet et, så beder nu om hjælp her.


Det skal kunne uploade filer på op til 250 kb.
Og resize billeder.
Hvis den bare kan tage .htm, .php og .jpg er det fint.

Håber i kan hjælpe :-)

Har ikke en MySQL database, og er ikke særligt god til php

[Redigeret d. 27/07-05 20:18:57 af Tim]



27 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 13 karma
Sorter efter stemmer Sorter efter dato
Hej.
Jeg går og mangler et fil upload system.
Jeg har ledt hist og her, men har ikke fundet et, så beder nu om hjælp her.


Det skal kunne uploade filer på op til 250 kb.
Og resize billeder.
Hvis den bare kan tage .htm, .php og .jpg er det fint.

Håber i kan hjælpe :-)

Har ikke en MySQL database, og er ikke særligt god til php

[Redigeret d. 27/07-05 20:18:57 af Tim]


Prøv at kigge på denne kode. Den skulle kunne klare hvad du søger med lidt tilrettelse.

Fold kodeboks ind/udKode 


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 27/07-05 21:02:45 af Rune Jensen (RoZ)]



Hmm som tidliger sagt er jeg ret dårlig på php, så ved ikke rigtig hvad der skal laves om her.

Dette er hvad jeg er kommet frem til...

http://tjekkertyk.frac.dk/billedeupload/billedeupload.php

[Redigeret d. 27/07-05 21:27:31 af Tim]



Du skal dele filen i 2

<pre>
<form enctype="multipart/form-data" action="billeduploadok.php" method="post">
<table cellspacing="2" cellpadding="2" border="0">

<tr>
<td>Vælg fil:</td>
<td><input name="fil" type="file"></td>
</tr>


<tr>
<td></td>
<td><input type="submit" value="Send File"> </td>
</tr>

</table>
</form>
</pre>

er en fil for sig selv kaldet billedupload.php det er den folk skal have adgang til.

<pre>
<?

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//laver lige et par variabler :-)
$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "uploadet-" . $tid . "." . $ext;

//Her er vores destination for det store billede
$dst = "../upload/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);



//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 200px
if($imgsize[0] > 200) {

//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "../upload/thumbnail/" . $nytNavn);

//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "../upload/thumbnail/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};


?>
</pre>
er en anden fil kaldet billeduploadok.php som modtager den info brugeren indtaster i den første fil.



Prøvede at gå ind i den mappe scriptet uploader til, og den findes ikke, så du kan ikke flytte filen til en mappe der ikke eksisterer. se selv her, den siger 404:

http://www.tjekkertyk.frac.dk/upload/upload/



Hmm forstår ik du kan få det til at virke :S
Og har prøvet at tage de to ting og slå dem sammen intet skete.
Og modtog ingen filer fra dig.


Nej ok, jeg var nok ikke helt klar på det punkt - jeg prøvede at køre kode/formular på egen server, og det virkede fint. Jeg havde ikke succes med at bruge det du linker til...


Har du blandet noget kode eller ændret på nogen variabler?

Her er det jeg helt konkret testede selv - dog i en fil med en switch. Gem det som det er i en fil du kalder test.php, og hav en mappe der hedder 'upload' liggende:

Fold kodeboks ind/udKode 


Først indtaster du denne url: www.ditdomæne.dk/test.php?mode=3
Det er chmod af mappen upload.

Dernæst går du ind på url'en www.ditdomæne.dk/test.php?mode=1 og uploader en fil.

Hvis det ikke virker, så aner jeg ikke hvad der skulle være galt, men skriv hvad du får af tekst ud af det.



Har du husket at lave filen billeduploadok.php chmod777
samt den mappe den skal oploades til?

---------------------------------
www.teamsf.frac.dk
www.EJ-Computer.dk | Your PC entertainer



Hej.
Jeg går og mangler et fil upload system.
Jeg har ledt hist og her, men har ikke fundet et, så beder nu om hjælp her.


Det skal kunne uploade filer på op til 250 kb.
Og resize billeder.
Hvis den bare kan tage .htm, .php og .jpg er det fint.

Håber i kan hjælpe :-)

Har ikke en MySQL database, og er ikke særligt god til php

[Redigeret d. 27/07-05 20:18:57 af Tim]



Jeg kan desværre ikke huske at have set et php-system der virker uden en database, desværre...
.html og .php er side-endelser, ikke billede :)
nærmere .jpg .gif og måske .png



Hmm som tidliger sagt er jeg ret dårlig på php, så ved ikke rigtig hvad der skal laves om her.

Dette er hvad jeg er kommet frem til...

http://tjekkertyk.frac.dk/billedeupload/billedeupload.php

[Redigeret d. 27/07-05 21:27:31 af Tim]



Hmm som tidliger sagt er jeg ret dårlig på php, så ved ikke rigtig hvad der skal laves om her.

Dette er hvad jeg er kommet frem til...

http://tjekkertyk.frac.dk/billedeupload/billedeupload.php

[Redigeret d. 27/07-05 21:27:31 af Tim]



Du skal dele filen i 2

<pre>
<form enctype="multipart/form-data" action="billeduploadok.php" method="post">
<table cellspacing="2" cellpadding="2" border="0">

<tr>
<td>Vælg fil:</td>
<td><input name="fil" type="file"></td>
</tr>


<tr>
<td></td>
<td><input type="submit" value="Send File"> </td>
</tr>

</table>
</form>
</pre>

er en fil for sig selv kaldet billedupload.php det er den folk skal have adgang til.

<pre>
<?

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//laver lige et par variabler :-)
$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "uploadet-" . $tid . "." . $ext;

//Her er vores destination for det store billede
$dst = "../upload/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);



//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 200px
if($imgsize[0] > 200) {

//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "../upload/thumbnail/" . $nytNavn);

//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "../upload/thumbnail/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};


?>
</pre>
er en anden fil kaldet billeduploadok.php som modtager den info brugeren indtaster i den første fil.


Ja nu skete der noget, men der står stadig der er fejl :S



Nu skrives der ikke noget om billedredigering ved upload i det første indlæg, og det ville nok også give lidt problemer ved upload af andre filtyper, så her en lidt mere enkel kode:

Formularen (upload.php)
Fold kodeboks ind/udKode 


Selve koden (upload_2.php)
Fold kodeboks ind/udKode 



Du kan lave en række ændringer f.eks. ved filnavn, og så skal du huske at sørge for at destinationsmappen er CHMOD'et til 777.




Nu skrives der ikke noget om billedredigering ved upload i det første indlæg, og det ville nok også give lidt problemer ved upload af andre filtyper, så her en lidt mere enkel kode:


Tjaa, tjoo, jooo det gør der jo sån set rent faktisk ;)


Det skal kunne uploade filer på op til 250 kb.
Og resize billeder.


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



<< < 123 > >>
t