【发布时间】:2014-11-14 19:26:57
【问题描述】:
我正在尝试使用 php 将 matlab 文件上传到我的服务器。我需要将此文件作为 php url 的一部分传递,以便我可以从 url 中取出它并将其传递给自定义 shell 脚本中的某些代码。
这是我用来更改 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>";
?>
你能告诉我我做错了什么吗?
期待您的回复。
感谢和最好的问候, 希瓦姆·迪克西特
【问题讨论】:
-
$_GET['matlabfile'] 它是什么?你在哪里把输入放在表单中
-
您可能无法执行此操作。 URL 参数长度是有限制的,而且它们似乎可能小于您文件的内容。使用 POST。
-
@Indra:我从脚本的第一部分收到错误,即上传文件。
标签: javascript php matlab upload action