我正在尝试使用php将matlab文件上传到我的服务器上。我需要将此文件作为php url的一部分传递,以便我可以从url中取出它并将其传递给自定义shell脚本中的某些代码。
以下是我用来更改网址的脚本,但文件没有上传。
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>";
?>
请你告诉我我做错了什么。
期待您的回复。
谢谢和最诚挚的问候, Shivam Dixit
答案 0 :(得分:0)
你的'回归虚假;'阻止提交表单,然后不上传文件。您只是将用户移动到另一个地址。
而不是
window.location = "upload.php?matlabfile=" + filename3;
return false;
尝试将表单操作设置为您想要的网址:
form.setAttribute('action', "upload.php?matlabfile=" + filename3);
然后,用户将被发送到您想要的页面,文件将被上传:)