Я пытаюсь включить индикатор выполнения загрузки на свою страницу.Страница загружает файл дважды?
мне удалось получить индикатор рабочего с помощью этого метода:
Когда пользователь нажимает кнопку «Загрузить файл», индикатор выполнения выполняет бизнес и показывает, сколько загружено и когда оно будет завершено.
Однако, когда пользователь отправляет форму, файл, кажется, снова загружается (хром показывает информацию о загрузке файла в левом нижнем углу экрана).
Как я могу избежать этого? Кроме того, как я могу получить его, поэтому у меня нет кнопки для загрузки файла?
Все, что я хочу, это кнопка отправки, индикатор выполнения показывает прогресс, а затем переходит на другую страницу после завершения загрузки (через какой-то php, который делает то, что ему нужно делать с информацией POST)?
Мой соответствующий код ниже ...
<form method="post" action="../../assets/php/actiontest.php" name='mainForm' enctype="multipart/form-data" OnSubmit="return CheckForm()">
<input type="text" name="Customer" placeholder="Customer" required/><br/>
<input type="file" name="file1" id="file1"><br/>
<input type="button" value="Upload File" onclick="uploadFile()" />
<progress id="progressBar" value="0" max="100" style="width:100%;"></progress>
<input type="submit" id="submit" />
</form>
<script type="text/javascript">
function _(el){
return document.getElementById(el);
}
function uploadFile(){
var file = _("file1").files[0];
var formdata = new FormData();
formdata.append("file1", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
//ajax.open("POST", "file_upload_parser.php");
ajax.open("POST", "../../assets/php/actiontest.php");
ajax.send(formdata);
}
function progressHandler(event){
var percent = (event.loaded/event.total) * 100;
_("progressBar").value = Math.round(percent);
}
function completeHandler(event){
_("progressBar").value = 0;
}
</script>
Вы не отменяете мероприятие отправки. –