2010-04-16 3 views
3

Я пытаюсь написать сценарий, который загружает файл через html-форму. Когда я нажимаю кнопку «Отправить», ничего не происходит.php upload file function

файл: upload_form.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 

<form action="do_upload.php" method="post" enctype="multipart/form-data"></form> 
<p><strong>File to upload</strong></p> 
<p><input name="img1" type="file" size="30" /></p> 
<p><input name="submit" type="submit" value="Upolad File" /></p> 

</body> 
</html> 

файл: do_upload.php

<?php 
if ($_FILES[img1] != "" { 
    @copy($_FILES[img1] [tm_name], "/tmp" .$_FILES[img1][name]) 
    or die("couldnt copy the file"); 
} else { 
    die("no file specified"); 
} 
?> 

<HTML> 
<head> 
<title>Successfull File Upload</title> 
</head> 
<body> 

<h1>Success</h1> 
<p>You sent: <? echo $_FILES[img1][name]; ?>, a <? echo $_FILES[img1][size]; ?>byte filw with a mime type of <? echo $_FILES[img1][type]; ?></p> 

</body> 
</HTML> 
+2

«Ничего не происходит», как в «вы получаете пустую страницу»? «Он не подчиняется»? Во втором файле есть синтаксическая ошибка, которая может быть причиной того, что ничего не происходит. (В первом тоже, на самом деле. :)) – deceze

+0

как он это не отправляет, у меня было закрытие до раннего. Теперь я должен найти ошибку в строке 2 в do_upload.php – Jacksta

+2

Вам не хватает скобок. Строковые литералы должны быть указаны ('$ _FILES ['img1']', а не '$ _FILES [img1]'; http://php.net/manual/en/language.types.array.php#language.types. array.foo-бар). Кроме того, вы должны использовать 'empty',' isset' или 'array_key_exists' вместо сравнения потенциально несуществующего значения массива с пустой строкой. Наконец, не используйте 'die' таким образом (http://www.phpfreaks.com/blog/or-die-must-die). – outis

ответ

6
<form action="do_upload.php" method="post" enctype="multipart/form-data"></form> 
<p><strong>File to upload</strong></p> 
<p><input name="img1" type="file" size="30" /></p> 
<p><input name="submit" type="submit" value="Upolad File" /></p> 

в

<form action="do_upload.php" method="post" enctype="multipart/form-data"> 
<p><strong>File to upload</strong></p> 
<p><input name="img1" type="file" size="30" /></p> 
<p><input name="submit" type="submit" value="Upolad File" /></p> 
</form> 

и

if ($_FILES[img1] != "" { 

в

if (isset($_FILES['img1'])) { 
+0

как глупо от меня, спасибо! – Jacksta

+0

Ну, теперь мой ответ выглядит довольно глупым. :) Этот тесный тег все время смотрел на меня, и я никогда этого не замечал. – awgy

+0

Теперь я получаю сообщение об ошибке в строке 2 файла do_upload.php :( – Jacksta

3

Если вы не получаете никаких ошибок на всех, добавьте следующие строки в верхней части сценария, чтобы убедиться, что сообщения об ошибках настроена правильно:

error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 
+0

Если это ошибка. Он ничего не получает **, потому что его теги «» неактивны. –