FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Har WN som tidsfördriv
|
Hej,
Är det någon som har ett php-script (eller var ett finns) som man kan använda för att ladda upp filer från en hemsida. Det jag söker är ett via en <form> kunna ladda upp bilder på min ftp i formaten .jpg och .kmz (och helst se till att bara de går). Jag har letat på nätet och hittat flera script men inget har fungerat. Är det någon som vet något som, verifierat, fungerar? Det är framförallt den "mottagande" scriptet som jag söker. <form>-koden är ganska simpel. mvh Christoffer |
|||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Har WN som tidsfördriv
|
config.php:
Kod:
<? //Advanced Uploader V1.00b //Copyright 2002 ZachWhite.com //By using this program you agree with the license provide with it. //Script by Zach White http://www.zachwhite.com [email protected] $absolute_path = "/my/path/upload/"; //Absolute path to where files are $size_limit = "yes"; //do you want a size limit yes or no. $limit_size = "20000000"; //How big do you want size limit to be in bytes $limit_ext = "no"; //do you want to limit the extensions of files uploaded $ext_count = "4"; //total number of extensions in array below $extensions = array(".gif", ".jpg", ".jpeg", ".png"); //List extensions you want ?> index.php: Kod:
<? switch($upload) { default: include "config.php"; echo " <html> <head> <title>Upload</title> </head> <body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 12pt; color: #FFFFFF$ Send a file to najk:<br> <form method=\"POST\" action=\"$PHP_SELF?upload=doupload\" enctype=\"multipart/form-data\"> <input type=file name=file size=30 style=\"font-family: v; font-size: 12pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1\"><$ <br> <input name=\"submit\" type=\"submit\"> </form> </body> </html>"; break; case "doupload": include "config.php"; $endresult = "<font size=\"2\">File Was Uploaded</font>"; if ($file_name == "") { $endresult = "<font size=\"2\">No file selected</font>"; }else{ if(file_exists("$absolute_path/$file_name")) { $endresult = "<font size=\"2\">File Already Existed</font>"; } else { if (($size_limit == "yes") && ($limit_size < $file_size)) { $endresult = "<font size=\"2\">File was to big</font>"; } else { $ext = strrchr($file_name,'.'); if (($limit_ext == "yes") && (!in_array($ext,$extensions))) { $endresult = "<font size=\"2\">File is wrong type</font>"; }else{ @copy($file, "$absolute_path/$file_name") or $endresult = "<font size=\"2\">Couldn't Copy File To Server</font>"; } } } } echo " <html> <head> <title>Upload</title> </head> <body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 12pt; color: #FFFFFF$ $endresult<br> </body> </html>"; break; } ?> |
|||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Har WN som tidsfördriv
|
glömde säga att jag använder den själv, så den fungerar bra för mig.
kanske inte världens snyggaste kod, men jag orkade bara lägga till en rad, inte fixa till skiten :P |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Har WN som tidsfördriv
|
Det är strålande, ska testa den så snart som möjligt. Tack!
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
Ser väldigt farligt ut det skriptet. Nu tittade jag bara på det väldigt snabbt men det ser ut som jag kan kopiera vilken fil jag vill till var jag vill så länge filen inte redan existerar.
|
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Flitig postare
|
Jag fortsätter på den här tråden.
I flera år har jag testat så att webläsaren skickar rätt MIME-typ av de JPEG-filer jag vill ta emot. Detta för att få någon typ av säkerhet i att man inte tar emot vilken typ som helst som slutar med .jpg. Det är säkert inte säkert, och det har ett problem: bilder från digitalkamerar har ofta ingen MIME-typ satt. Erfarenheten visar också att Photoshop (som många använder) är dåligt på att sätta dem. Så webläsaren kan inte skicka någon MIME-typ varför jag, tills nu, inte tagit emot filerna. Vad ska jag göra? Det är många som har helt okej JPEG-filer att ladda upp men som stoppas av att MIME-typen inte finns att tillgå. Man kan ju testa filens efternamn som i exemplet ovan men det har från början känts otillräckligt. Några kommentarer? |
|||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
Kod:
<?php //Example PHP code to determine the type of a file given //8 bytes of header data. Much more accurate than checking //the user-supplied Content-Type and of course this is far //better than relying on checking the file extension :). //(C)2004 r1ch.net. I place this code into the public domain //in the hope it is useful to somebody. //open a file $image_data = fopen($argv[1], "rb"); //grab first 8 bytes, should be enough for most formats $header_bytes = fread($image_data, 8); //close file fclose ($image_data); //compare header to known signatures if (!strncmp ($header_bytes, "\xFF\xD8", 2)) $file_format = "JPEG"; else if (!strncmp ($header_bytes, "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A", 8)) $file_format = "PNG"; else if (!strncmp ($header_bytes, "FWS", 3) || !strncmp ($header_bytes, "CWS")) $file_format = "SWF"; else if (!strncmp ($header_bytes, "BM", 2)) $file_format = "BMP"; else if (!strncmp ($header_bytes, "\x50\x4b\x03\x04", 4)) $file_format = "ZIP"; else if (!strncmp ($header_bytes, "GIF", 3)) $file_format = "GIF"; else $file_format = "unknown"; print "The file is a $file_format file.\n"; ?> |
|||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Klarade millennium-buggen
|
Finns det ingen möjlighet att i PHP casta den uppladade filen till ett bildobjekt och se om det går bra? (jag pysslar med .Net så jag vet inte, jag föreslår en metod som kanske skulle fungera i min miljö)
|
|||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Nykomling
|
exif_imagetype() i php är annars lämpligt för att kontrollera olika typer av bilder, eller anser någon att det i sig är en säkerhetsrisk? Hur som helst så krävs det att php_exif.xxx är inkluderad i php.ini
http://se.php.net/manual/sv/function.exif-imagetype.php |
|||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Medlem
|
Men om det enda man använder filerna som användaren har laddat upp till att visa som bilder, och någon laddar upp t: ex en .exe fil som är omdöpt till .jpg, blir det något säkerhetshål då eller visas bara inte bilden korrekt?
/Tomas |
||
![]() |
![]() |
Svara |
|
|