ご利用前に必ずお読みください。
フォーラムTOP > Xfree(旧無料レンタルサーバー) > phpでアップローダーが作れない

phpでアップローダーが作れない

by 阿吽の呼吸さん (e32e187b)
投稿数:1回
(ベストアンサー:1回)
2022/05/19 16:03
phpのアップローダーを作ろうとしたところ、アップロードすると
「No such file or directory」というエラーが表示されました。
どうすればいいでしょうか
----以下コード----
↓index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>画像のアップロード</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
ファイル:<br />
<input type="file" name="upfile" size="30" /><br />
<br />
<input type="submit" value="アップロード" />
</form>
</body>
</html>
↓upload.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>画像のアップロード</title>
</head>
<body>
<p><?php

const FILE_FOL = "files/";

$check = null;
$newfilename = null;
$msg = null;


$ext = pathinfo($_FILES["upfile"]["name"], PATHINFO_EXTENSION);
$newfilename = date("YmdHis").mt_rand().".".$ext;

if(is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
$check = 1;
} else {
$check = 0;
$msg = "ファイルが選択されていません。";
}

if ($check == 1) {
if ($_FILES['upload']['size'] > 1000000) {
$check = 0;
$msg = 'ファイルサイズを小さくしてください';
}
}


$file_pass = $_FILES["upfile"]["tmp_name"];
if ($check == 1) {
if(file_exists($file_pass) && $type = exif_imagetype($file_pass)){
switch($type){
//gifの場合
case IMAGETYPE_GIF:
break;
//jpgの場合
case IMAGETYPE_JPEG:
break;
//pngの場合
case IMAGETYPE_PNG:
break;
//どれにも該当しない場合
default:
$msg = "gif、jpg、png以外の画像です";
}
}else{
$msg = "画像ファイルではありません";
$check = 0;
}
}

if ($check == 1) {
if (move_uploaded_file($file_pass, FILE_FOL.$newfilename)) {
chmod(FILE_FOL. $_FILES["upfile"]["name"], 0644);
print $newfilename. "としてファイルをアップロードしました。<BR>";
print "<a href=".FILE_FOL.$newfilename. ">ファイルを確かめる</A><BR>";
print "<img src=".FILE_FOL.$newfilename." width=400>";
} else {
print "ファイルをアップロードできません。";
}
} else {
print $msg;
}
print "<P><a href=index.html>戻る</A>";
?></p>
</body>
</html>
回答する
解決済みにする
by .さん (4b9b203e)
投稿数:257回
(ベストアンサー:32回)
2022/05/20 06:28
一箇所だけupload.phpの修正を。

× chmod(FILE_FOL. $_FILES["upfile"]["name"], 0644);
○ chmod(FILE_FOL. $newfilename, 0644);

あとはfilesディレクトリーの作成を忘れずに。
この回答に返信する
by ぬこ星のねんねこさん (2b2422d3)
投稿数:20回
(ベストアンサー:1回)
2022/08/07 14:03
.htmlだとphpは動作しません。.phpにしてください。
この回答に返信する
by ぬこ星のねんねこさん (2b2422d3)
投稿数:20回
(ベストアンサー:1回)
2022/08/07 14:03
↑間違えました
この回答に返信する