<form> + js + php
столкнулся с проблемой загрузки файла через форму, с помощью javascript'а
Код:
<button type='button' onClick="document.getElementById('upload1').click();">Загрузить файл</button> // видимая кнопка
<form name="uploadform" style="display: none" action="/admin/index.php?page=man_files&dir=<? echo $_GET['dir']?>" method="post" enctype="multipart/form-data">
<input id="upload1" style="display: none" onChange="document.uploadform.submit()" type="file" name="uploadfilename"><br>
<input style="display: none" name="upload2" type="submit" value="Загрузить"><br>
</form>
<form name="uploadform" style="display: none" action="/admin/index.php?page=man_files&dir=<? echo $_GET['dir']?>" method="post" enctype="multipart/form-data">
<input id="upload1" style="display: none" onChange="document.uploadform.submit()" type="file" name="uploadfilename"><br>
<input style="display: none" name="upload2" type="submit" value="Загрузить"><br>
</form>
Код:
if(isset($_POST['upload2'])){
if($_FILES["uploadfilename"]["size"] > 2*1024*1024)
{
echo ("Файл слишком большой");
}
if(is_uploaded_file($_FILES["uploadfilename"]["tmp_name"]))
{
move_uploaded_file($_FILES["uploadfilename"]["tmp_name"], "../" . $_GET['dir'] . $_FILES["uploadfilename"]["name"]);
} else {
echo("Ошибка загрузки файла");
}
}
if($_FILES["uploadfilename"]["size"] > 2*1024*1024)
{
echo ("Файл слишком большой");
}
if(is_uploaded_file($_FILES["uploadfilename"]["tmp_name"]))
{
move_uploaded_file($_FILES["uploadfilename"]["tmp_name"], "../" . $_GET['dir'] . $_FILES["uploadfilename"]["name"]);
} else {
echo("Ошибка загрузки файла");
}
}
По идее вроде все должно работать.
P.S. Без javascript все работает
У меня в Firefox'е работает
он у меня открывает диалоговое окно, я выбираю файл, он отправляет файл, и все, не выдает ошибок.
путем некоторых экспериментов, понял что с формы не отправляются данные именно тогда, когда отправляю джаваскриптом. А вот почему это происходит не могу понять(
Подтолкните к решению, пожалуйста. Может быть я не так считываю данные с формы, когда отправляю джаваскриптом?
Код:
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_errors', '1');
Код:
print_r($_FILES);