HTML5 — загрузка файлов в PHP не работает

Я новичок в PHP, и я пытаюсь сделать скрипт загрузки. Но это не работает полностью.

Что не работает, так это то, что, когда я загрузил фотографию, она не сохраняет фотографию в папке «загрузки». (Расположение папки: Приложения> MAMP> htdocs> Marjolein)

Также я хочу показать фотографию, которая была загружена в браузере, но это также не работает.

Я работаю с Mac и использую MAMP для запуска своего php-кода. Не могли бы вы помочь мне, чтобы я мог показать картинку в браузере и чтобы она сохранялась в папке «Загрузка»?

Код у меня есть:

uploader.php

<style>
.sucess{
color:#088A08;
}
.error{
color:red;
}
</style>

<?php
$file_exts = array("jpg", "bmp", "jpeg", "gif", "png");
$upload_exts = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($upload_exts, $file_exts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
// Enter your path to upload file here
if (file_exists("://Applications/MAMP/htdocs/Marjolein/uploads/" .
$_FILES["file"]["name"]))
{
echo "<div class='error'>"."(".$_FILES["file"]["name"].")".
" already exists. "."</div>";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]);
echo "<div class='sucess'>"."Stored in: " .
"://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]."</div>";
}
}
}
else
{
echo "<div class='error'>Invalid file</div>";
}

?>

<?php
if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!='')
{
?>
<p><img src="uploads/<?php echo $_REQUEST['show_image'];?>" /></p>
<?php
}
?>

uploadform.html

<html>
<body>

<form action="uploader.php" method="post"enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

После нажатия кнопки «Отправить» веб-браузер показывает:

Upload: 0_8caab_996cc75d_orig.jpg
Type: image/jpeg
Size: 538.166992188 kB
Temp file: /Applications/MAMP/tmp/php/phptpCA8B
Stored in: ://Applications/MAMP/htdocs/Marjolein/uploads/0_8caab_996cc75d_orig.jpg

1

Решение

Попытайтесь повторить изображение после загрузки: (Не знаю о хранении изображения)

echo '<img src="://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]" border=0>';

Поместите это здесь:

else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]);
echo "<div class='sucess'>"."Stored in: " .
"://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]."</div>";
echo '<img src="://Applications/MAMP/htdocs/Marjolein/uploads/" . $_FILES["file"]["name"]" border=0>';
}

Возможно, путь к файлу не правильный. Я думаю, что вы можете попробовать это вместо вашего предыдущего пути:

move_uploaded_file($_FILES["file"]["tmp_name"],
"../uploads/" . $_FILES["file"]["name"]);

или если папка «uploads» находится в том же каталоге, что и файл uploader.php, вы можете использовать это:

move_uploaded_file($_FILES["file"]["tmp_name"],
"uploads/" . $_FILES["file"]["name"]);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]