PHPã§ãã¡ã€ã«ã¢ããããŒãã®ãã§ãã¯ããµã€ãºã調ã¹ãæ¹æ³
PHPã§ã¢ããããŒããã¡ã€ã«ã®æ å ±ãèŠãå Žåã«æ±ãããšã«ãªã倿°ããèŠããŠãããšäŸ¿å©ãªé¢æ°ã玹ä»ããŠãããŸããã¹ãŒããŒã°ããŒãã«å€æ°ã§ãã$_FILESã䜿çšããããã«é£æ³é åã®åœ¢ã§æ§ã ãªæ å ±ãæ ŒçŽãããŠãããŸãã®ã§ããã®æ±ãæ¹ãèŠããŠãããšè²ããªå Žé¢ã§åœ¹ã«ç«ã€ã§ããããPHPã䜿ããšWebã¢ããªããµãŒãã¹ãå¶äœããããšãã§ããŸããããã®éãã¡ã€ã«ã®ã¢ããããŒããå¿ èŠãšããããšãçãããããŸããããããŠãã®ã¢ããããŒããæ£ããè¡ãããã®ãã©ããããŸããã¡ã€ã«ã®æ å ±ãååŸãããå ŽåããããŸããããã§ã¯PHPã䜿ã£ãŠããããå®è¡ããã«ã¯ã©ãããã°ããã®ãããã®æ¹æ³ã玹ä»ããŠãããŸãã
PHPã§ãã¡ã€ã«ã¢ããããŒãã«é¢ããæ å ±ããã§ãã¯ã§ãã
PHPã¯Webãµã€ããWebã¢ããªã®æ§ç¯ã«åããŠããèšèªã§ããå®éPHPã䜿ã£ãŠå€ãã®ãµãŒãã¹ãæäŸãããŠããŸãããŠãŒã¶ãŒãšã®ããåãã§ã¯ç®çãªã©ã«å¿ããŠæ§ã ãªæ å ±ãéåä¿¡ãããŸããããã¡ã€ã«ãã¢ããããŒããããšããããšãçãããããŸããããããŠãã®å Žåã«ã¯ã¢ããããŒããããæ å ±ãååŸãããã®æ å ±ãããšã«åå¿ãè¿ããšããåäœããããããšããããŸãã
äŸãã°ãã¡ã€ã«åãç¥ãããå Žåãããã¡ã€ã«ãµã€ãºãç¥ããããšããããšãããããšæããŸããPHPã§ã¯ç¹å¥ãªå€æ°çã䜿çšããŠããããšã§ã¢ããããŒããããã¡ã€ã«ã«é¢ããŠè²ããªæ å ±ãååŸã§ããããã«ãªã£ãŠããŸãã®ã§ããã®åºæ¬çãªäœ¿ãæ¹ãç¥ã£ãŠãããšè¯ãã§ãããã
$_FILESãšã¯
ã¢ããããŒããããã¡ã€ã«æ
å ±ãååŸããããã«äœ¿çšãã倿°ããïŒ_FILESãã§ããããã¯PHPã§å®çŸ©æžã¿å€æ°ãšãããŠãã倿°ã§ãããã€ãŸãããã°ã©ã ãçµã人ãããããå®çŸ©ãããªããŠãåããã䜿ããããã«ãªã£ãŠãã倿°ã«ãªããŸãããŸã$_FILESãå¥ã®èšãæ¹ã§ãã¹ãŒããŒã°ããŒãã«å€æ°ããšãåŒã³ãŸãã$_FILES['name']ãšãã£ãå
·åã«å€æ°åã«ç¶ããŠãã¡ã€ã«æ
å ±ã®çš®é¡ãæå®ããŠäœ¿çšããŸããå
·äœçã«ã©ã®ãããªæ
å ±ãååŸã§ããã®ããæ¬¡é
ã§ç޹ä»ããŠãããŸãã
$_FILESã§ååŸã§ããæ å ±
$_FILESã§ã¯äž»ã«ããã¡ã€ã«åãããã¡ã€ã«ã¿ã€ãããäžæãã¡ã€ã«åãããšã©ãŒã³ãŒããããã¡ã€ã«ãµã€ãºããååŸã§ããŸãã
-
ãã¡ã€ã«å
ã¢ããããŒããããã¡ã€ã«ã®æ å ±ã¯$_FILESãžé£æ³é åã®åœ¢ã§æ ŒçŽãããŠããã
HTMLã®inputã¿ã°ã§æå®ããnameããuploadfileããšããã°ããã¡ã€ã«åã¯$_FILES['uploadfile']['name']ã®äžã«æ ŒçŽãããããšã«ãªããŸãã -
ãã¡ã€ã«ã¿ã€ã
ãã¡ã€ã«åãæ ŒçŽãããŠããã®ãšåæ§ããã¡ã€ã«ã®MIMEã¿ã€ãã$_FILESã®äžã«æ ŒçŽãããŠããŸããMIMEã¿ã€ããšã¯ããã¥ã¡ã³ãã®çš®é¡ã衚ããã®ã§ãæ¡åŒµåãšã¯äŒŒãŠéãªããã®ã§ããäŸãã°ããã¹ããå«ããã®ãšããŠãtext/htmlããªã©ãç»åã衚ããã®ãšããŠã¯ãimage/jpegããªã©ãããããããã®æ å ±ã¯$_FILES['uploadfile']['type']ã®äžã«æ å ±ãå ¥ã£ãŠããŸãã
ãã ããã®å€ã¯å¿ ãããæ£ãããšã¯èšãããåœè£ ãããŠããå¯èœæ§ãããæ³šæãå¿ èŠã§ããããã§ãã¢ããããŒãããããã¡ã€ã«ã®ãã€ããªããŒã¿ããã§ããã ãæ£ããå€ãèªã¿åããšããææ³ããããŸãããããŠãã®ããã«ã¯Fileinfoãšãã颿°ã广çã§ãããã®ãã¡ã€ã«ã®çš®é¡èå¥ã®éã«ã¯ãã®é¢æ°ãæ€èšããŠã¿ããšè¯ãã§ãããã -
äžæãã¡ã€ã«å
$_FILES['uploadfile']['tmp_name']ã§ã¯ããµãŒããŒäžã§äžæçã«ä¿åããããã³ãã©ãªãã¡ã€ã«åãæ ŒçŽãããŠããŸãã -
ãã¡ã€ã«ãµã€ãº
ãã¡ã€ã«ãµã€ãºã®æ å ±ã¯$_FILES['uploadfile']['size']ã®äžã«æ ŒçŽãããŸãããã ãæ ŒçŽãããå€ã¯ãã€ãåäœã«ãªã£ãŠããããšã«ã¯æ³šæãå¿ èŠã§ãã
PHPã§ãã¡ã€ã«ã¢ããããŒãã®ç¢ºèªãè¡ãããã°ã©ã äŸ
åé ã§èª¬æããã¢ããããŒããããã¡ã€ã«ã®åçš®æ å ±ããã¡ã€ã«åããã¡ã€ã«ãµã€ãºä»¥å€ã«ã調ã¹ããããšããããŸããããã¯ã¢ããããŒããããŠãããã©ããã§ããããããã§ãã¯ããã«ã¯is_uploaded_file()颿°ã䜿çšããŸãã
if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {
echo "ãã¡ã€ã« ". $_FILES['uploadfile']['name'] ." ã®ã¢ããããŒãã«æåããŸããã\n";
echo "ãã®äžèº«ã衚瀺ããŸã\n";
readfile($_FILES['uploadfile']['tmp_name']);
} else {
echo "ããããäœããã®æ»æãåããŸããã";
echo "ãã¡ã€ã«å '". $_FILES['uploadfile']['tmp_name'] . "'.";
}
ãã®ããã°ã©ã äŸã§ã¯ãifæã®äžã§ã¢ããããŒãããããŠããã°trueãã¢ããããŒãããããŠããªããã°falseãè¿ãããã«ãªã£ãŠããŸãããããŠtrueã®å Žåã«ã¯ãã¡ã€ã«åã衚瀺ããŠã¢ããããŒãã«æåãããšè¡šç€ºãããŠããŸããããã«ãã®äžèº«ã«ã€ããŠã衚瀺ãããŠããŸãã
äžæ¹ã§ãäžæãã¡ã€ã«ã«æ ŒçŽãããŠããããšã確èªã§ããªããã°æ»æãåãããããããªããšã¢ããŠã³ã¹ããããã«ãªã£ãŠããŸãã
trueãããã¯falseãè¿ãããåŸã®åŠçã«ã€ããŠã¯èªç±ã«ããã°ã©ã ãçµãã°ããŸããŸããããåºæ¬çã«ã¯is_upload_file()颿°ã¯ifæã®äžã§ãã®ããã«çµã¿åããããŠäœ¿ããŸãã
ã¢ããããŒããã¡ã€ã«ãžã®æäœã«ã¯move_uploaded_file()颿°ãšãããã®ããããŸãããã®é¢æ°ã§ã¯ç¬¬äžåŒæ°ã§ãã¡ã€ã«åãæå®ãããã®ãã¡ã€ã«ãæå¹ã«ã¢ããããŒããããŠãããã©ãã確èªããæå¹ãªãã¡ã€ã«ã§ããå Žåã«ã¯ç¬¬äºåŒæ°ã§æå®ãããã¡ã€ã«åã«ç§»åããããšããåŠçãè¡ããŸãã
ãããŠãã®é¢æ°ã¯ãåŠçã«æåãããštrueãè¿ããŸããã第äžåŒæ°ã§æå®ãããã®ãæå¹ãªã¢ããããŒããã¡ã€ã«ã§ãªããã°åŠçã¯è¡ãããã«falseãè¿ããŸããããã«ãã¢ããããŒããã¡ã€ã«ãæå¹ã§ãã£ããšããŠãäœãããã®åé¡ã«ãã£ãŠãã¡ã€ã«ã®ç§»åãã§ããªããã°ãã®å Žåã§ããã¯ãfalseãè¿ããèŠåãåºåãããŸãããŸããã³ããŒå ã®ãã¡ã€ã«ããã§ã«ååšããŠãããšäžæžããããŠããŸããŸãããã®é¢æ°ã䜿ããšãã«ã¯æ³šæããŸãããã
ãã¡ã€ã«ã®ã¢ããããŒãã§ã¯ãããã«ã»ãã¥ãªãã£é¢ãžã®é æ ®ãå¿ èŠã§ãããŠãŒã¶ãŒãèªç±ã«ãã¡ã€ã«åãæå®ã§ããå Žåããã®ãã¡ã€ã«ãã¢ããããŒãããéã«æ»æãåããå¯èœæ§ããããŸãããµãŒããŒäžã§ã¢ããããŒãããããã¡ã€ã«ãæäœããå Žåã«ã¯ãªããŒã ãããªã©ã®å¯Ÿçãæœããšè¯ãã§ãããã
ãŸãšã
PHPã§ã¢ããããŒããããã¡ã€ã«ã®æ å ±ã確èªãããå Žåãªã©ã«ã¯é¢æ°ãç¹å¥ãªå€æ°ãçšãããšãã®ãã§ãã¯ãã§ããŸããå ·äœçã«ã¯ã¹ãŒããŒã°ããŒãã«å€æ°ã§ãã$_FILESã䜿ããšããããšããããŠãã®å€æ°ã®äžã«ã¯é£æ³é åã®åœ¢åŒã§ããã¡ã€ã«åããããã¡ã€ã«ã¿ã€ããããäžæãã¡ã€ã«åããããã¡ã€ã«ãµã€ãºããªã©ãæ ŒçŽãããŠãããšããããšãèŠããŠãããšããã§ãããã
ãŸããã¢ããããŒãèªäœãã§ããŠããã®ã確èªããããã«ã¯is_uploaded_file()颿°ã䜿ãifæãšçµã¿åããããšã¢ããããŒããæåããå Žåãšå€±æããŠããå Žåãšã§åŠçãåããããšãã§ããããã«ãªããŸãããŸãmove_uploaded_file()颿°ã§ã¯ãã¡ã€ã«ã®ã³ããŒãè¡ãããšãã§ããŸãããã²ããããã®é¢æ°ã倿°ã䜿ãããªããŠå®çšçãªããã°ã©ã ãäœæããŠãããŸãããã













