私は PHP を自己学習するために最善を尽くしている初心者プログラマーです。ファイルのアップロードを機能させようとしていますが、いくつか問題があります。ファイルは正常にアップロードされたようですが、一時的な場所はサーバー上に存在しない場所です。
ファイルをアップロードするために使用しているコードは次のとおりです。
<?php
if (isset($_POST['submit']))
{
$imgfile = $_FILES['imgfile']['name'];
$temp = $_FILES['imgfile']['tmp_name'];
$type = $_FILES['imgfile']['type'];
if (!empty($imgfile))
{
$dbc = mysqli_connect('DB_HOST','DB_USER','DB_PASSWORD','DB_NAME')
or die('Error connecting to database');
$query = "INSERT INTO photos VALUES(0, '$imgfile',NOW(), '$temp', '$type')";
mysqli_query($dbc,$query);
//clear the form
$imgfile = "";
mysqli_close($dbc);
}
}
?>
<form enctype = "multipart/form-data" method = "POST" action = "<?php
echo $_SERVER['PHP_SELF']; ?>">
<label for = "imgfile">Filename:</label>
<input type = "file" id = "imgfile" name = "imgfile" />
<br />
<input type = "submit" value = "upload" name = "submit" id = "submit" />
</form>
これらは、$_FILES['tmp_name']
変数が格納されていると言う場所の例です。
/tmp/phpWw6aut
また
/tmp/php4bzVfE
php.ini
ファイルに設定されているデフォルトの一時ディレクトリはroot/tmp
. その部分は正しいですが、各ファイルが入っていると言っているフォルダー/phpgarbage
内に、おそらくその奇妙なフォルダーがありtmp
ます。唯一のことは、それらのフォルダーがサーバーに存在しないことです。
何かご意見は?もっと具体的に言えることがあれば教えてください。これは私にとって初めてのプログラミング関連の投稿なので、他に共有すべき情報があれば教えてください。
お時間をいただきありがとうございます!