Загрузка фала по 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, время: 10:55. |