Вообщем замучился. Как из фром убрать action и сделать обращение к php скрипту через js.
CODE ( javascript):
скопировать код в буфер обмена
<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 + " загружен"); } } function copyfileName() { var div = $('<div><br>'); var name; var file = document.upload.elements["file"]; var file_name = document.upload.elements["fileName"]; var alt = document.upload.elements["shorty"]; if (file.length > 0){ for (i = 0; (i < file.length); i++) { if (file_name[i].value != file[i].value){ file_name[i].value = file[i].value; name = file_name[i].value.slice(file_name[i].value.lastIndexOf("\\")+1,file_name[i].value.lastIndexOf('.')); alt.value = alt.value+name.replace(/ |-/g," "); } } } else{ file_name.value = file.value; name = file_name.value.slice(file_name.value.lastIndexOf("\\")+1,file_name.value.lastIndexOf('.')); alt.value = alt.value+name.replace(/ |-/g," "); } } </script>
CODE ( html):
скопировать код в буфер обмена
<div id="res" ></div> <iframe name="hiddenframe" style="width:0px; height:0px; border:0px"></iframe> <form method="post" action="http://www.i.ru/upload.php" name="upload" target="hiddenframe" enctype="multipart/form-data" onsubmit="if(checkxf()=='fail') return false;"> <input type="text" name="fileName" readonly="readonly" /> <input type="file" name="file" onchange="javascript: copyfileName()" /> <input type="submit" name="upload" value="Загрузить" /> <br> <textarea type="text" name="shorty" onclick=setFieldName(this.name) style="width:650px; border-radius: 0px 0px 3px 3px;" rows="7"></textarea> </form>
PHP:
скопировать код в буфер обмена
if(isset($_POST['upload'])){ $folder = 'test/';//директория в которую будет загружен файл $uploadedFile = $folder.basename($_FILES['file']['name']); $data = $_FILES['file']; } 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; }
(Отредактировано автором: 01 Сентября, 2012 - 12:20:06)
|