Я пытаюсь загрузить файл matlab с помощью php на свой сервер. Мне нужно передать этот файл как часть php url, чтобы я мог извлечь это из url и передать это в некоторый код в пользовательском сценарии оболочки.
Вот сценарий, который я использую для изменения URL-адреса, но затем файл не загружается.
Код HTML:
<script type="text/javascript">
window.onload = function(){
var form = document.getElementById("phpForm");
form.onsubmit = function(){
var matlabfile = document.getElementById("fileToUpload");
var filename = matlabfile.value;
var filename2=filename.replace(/^.*\\/, "");
var filename3=filename2.substr(0, filename2.lastIndexOf('.'));
window.location = "upload.php?matlabfile=" + filename3
return false;
};
};
</script>
<form action="" id="phpForm" method="post"
name="phpForm" enctype="multipart/form-data>
<table style=" text-align:center;">
<tr>
<td><b>File 1:</b> <input id=
"fileToUpload" name="fileToUpload"
type="file"></td>
</tr>
<tr>
<td><input name="submit" type=
"submit" value=
"Upload Script"></td>
</tr>
</table>
</form>
Код PHP:
<?php
$targetfolder = "";
$targetfolder = $targetfolder . basename( $_FILES['fileToUpload']['name']) ;
if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $targetfolder)) {
echo "The file ". basename( $_FILES['fileToUpload']['name']). " is uploaded";
}
else {
echo "Problem uploading file";
}
$var1=$_GET['matlabfile'];
echo "<pre>$var1</pre>";
echo "matlabfile : ".$_GET['matlabfile']."<br>";
$output = shell_exec("./n.sh $var1 2>&1");
echo "<pre>$output</pre>";
?>
Не могли бы вы рассказать мне, что я делаю неправильно.
Ждем ваших ответов.
Спасибо и с наилучшими пожеланиями, Шивам Диксит
Ваше "ложное возвращение"; препятствует отправке формы, а затем файл не загружается. Вы просто перемещаете пользователя на другой адрес.
Вместо
window.location = "upload.php?matlabfile=" + filename3;
return false;
попробуйте установить действие формы на нужный URL:
form.setAttribute('action', "upload.php?matlabfile=" + filename3);
Затем пользователь будет отправлен на нужную вам страницу, и файл будет загружен :)