Загрузка фала по onChange на input type=file
Если делаю submit кликом по кнопке, как в примере http://http://javascript.ru/forum/do...mi-iframe.html файл загружается, а если пытаюсь сделать submit формы по onChange на input type=file, то не работает.
Почему? <form action="upload.php" method="post" target="hiddenframe" enctype="multipart/form-data" name="userform"> <input type="file" id="userfile" name="userfile" onChange="userform.submit();"/> <input type="submit" name="upload" id="upload" value="Загрузить" /> </form> <div id="res"></div> <iframe id="hiddenframe" name="hiddenframe" style="width:0px; height:0px; border:0px"></iframe> |
Попробуй this.form.submit() .
Кстати, HTML не чувствителен к регистру, так что можно писать onchange для консистенции, тем более что одноименное свойство пишется именно onchange, а не onChange |
Цитата:
Вот код:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function hideBtn(){
$('#upload').hide();
$('#res').html("Идет загрузка файла");
}
function handleResponse(mes) {
$('#upload').show();
if (mes.errors != null) {
$('#res').html("Возникли ошибки во время загрузки файла: " + mes.errors);
}
else {
$('#res').html("Файл " + mes.name + " загружен");
}
}
</script>
<?php
if(isset($_POST['upload'])){
//Список разрешенных файлов
$whitelist = array(".gif", ".jpeg", ".png");
$data = array();
$error = true;
//Проверяем разрешение файла
foreach ($whitelist as $item) {
if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false;
}
//если нет ошибок, грузим файл
if(!$error) {
$folder = '/home/tmp/';//директория в которую будет загружен файл
$uploadedFile = $folder.basename($_FILES['userfile']['name']);
if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){
$data = $_FILES['userfile'];
$data['md5_file']=md5_file($uploadedFile);
}
else {
$data['errors'] = "Во время загрузки файла произошла ошибка";
}
}
else {
$data['errors'] = "Файл не загружен";
}
}
else{
$data['errors'] = 'Вы загружаете запрещенный тип файла';
}
//формируем js-файл
$res = '<script type="text/javascript">';
$res .= "var data = new Object;";
foreach($data as $key => $value){
$res .= 'data.'.$key.' = "'.$value.'";';
}
$res .= 'window.parent.handleResponse(data);';
$res .= "</script>";
echo $res;
}
else{
die("ERROR");
}
?>
|
Цитата:
Спасибо Хотя поченму не работает по другому не понятно:-E |
Привед велосипедостроителям )))
$ext = pathinfo($file, PATHINFO_EXTENSION); |
| Часовой пояс GMT +3, время: 01:55. |