2016-01-06 3 views
1

Я пытаюсь загрузить изображение в каталог, но есть проблема с формой. Когда форма отправляется, она перенаправляется в файл php, указанный в действии формы, но тогда он, похоже, не знает, какую форму отправляют.Отправка формы загрузки изображения PHP

HTML

<html> 
<form action="profileimg.php" method="post" enctype="multipart/form-data"> 
<label for="chooseimg" class="profile-pic-change"><i class="material-icons" style="color: rgb(255, 255, 255);">add_a_photo</i></label> 
<input type="file" name="image" accept="image/gif, image/jpeg, image/png" id="chooseimg" value="Image" onchange="javascript:this.form.submit();" /> 
</form> 
</html> 

(я также попытался использовать обычный не кнопку отправки;. Никакой разницы)

PHP

<?php 
include 'connect.php'; 
$target_dir = "Users/"; 

$name = $_FILES["image"]["name"]; 
$name = md5($name); 
$name = $name . uniqid($name); 
$path = $_FILES["image"]["name"]; 
$ext = pathinfo($path, PATHINFO_EXTENSION); 
$name = $name.".".$ext; 

$target_file = $target_dir . $name; 
if(isset($_POST['submit'])) 
{ 

move_uploaded_file($_FILES["image"]["tmp_name"], $target_file); 
$SQL = "INSERT INTO Users (image) VALUES ('$target_file')"; 
$result = mysql_query($SQL); 
if($result) 
{ 
    echo "<script type='text/javascript'>alert('success!')</script>"; 
} 
else 
{ 
    echo "<script type='text/javascript'>alert('failed!')</script>"; 
} 
} 
else 
{ 
echo 'didnt submit'; 
} 
?> 

я добавил не подавал эхо после получения ни одного из предупреждений, чтобы узнать, был ли это результат, и это все, что я получаю. Он перенаправляется на эту страницу, и только дисплеи не отправляются. Любые мысли о том, почему это может быть?

Заранее спасибо.

+0

где вход для этого? 'if (isset ($ _ POST ['submit']))' или JS. и почему вы не проверяете реальные ошибки? –

+0

Проконсультируйтесь по следующим ссылкам http://php.net/manual/en/function.mysql-error.php и http://php.net/manual/en/function.error-reporting.php и примените это к своему код, затем вернитесь и скажите, что они собой представляют, если они есть. –

+0

вход - это файл, и отправка должна произойти при выборе файла, однако я также попробовал кнопку отправки. Ничего не сработало. Попытались применить эти функции отчетности об ошибках к моему коду, но мне не дано ничего, кроме внутренней ошибки сервера – Codedstuff

ответ

0

У вас нет submit ключ $_POST массив. Используйте обычную кнопку отправки с name="submit"

<input type="submit" name="submit" /> 
+0

Просто попробовал это снова, получил внутреннюю ошибку сервера – Codedstuff

+0

@Codedstuff 'if (isset ($ _ POST [' submit '])) 'ищет кнопку отправки с тем же именем, которой нет в вашем вопросе/если есть JS/Ajax, включил его в свой вопрос. Это добавление к моему последнему комментарию. –

Смежные вопросы