我有一个非常简单的形式,但我的情况是不同的。我不想浏览计算机。我的文件位于我的服务器,所以我如何浏览表单字段中的服务器文件。如果我不能浏览我可以给任何位置所以它可以再次上传到我的服务器,但在不同的位置和所有不同的参数,所以我不想使用移动方法。
我不想使用远程网址上传方法,因为远程网址方法我无法检查文件类型,如果可以使用curl检查,那么我的表单处理脚本也不接受该链接,因为它不是有效的文件格式。解决这个问题的想法将是很有帮助的
我不想要用户,我必须使用表单
提交这些文件 <form action="fup.php" enctype="multipart/form-data" method="POST">
File to upload: <input type="file" name="upfile"><br>
Notes about the file: <input type="text" name="note"><br>
<br>
<input type="submit" value="Press"> to upload the file!
</form>
答案 0 :(得分:0)
你不能。
如果您希望用户将文件从服务器实际复制/移动到同一台计算机的另一条路径,则必须:
如果您的脚本“无法接受链接”,请进行更改。
答案 1 :(得分:0)
我还不清楚这一点。我不确定你为什么要用HTML来做这件事,而不是直接在你的服务器上修改文件。
我也不确定你要在每个文件上修改哪些细节:
作为一个起点,让我举一个我最初建议的例子,然后你可以告诉我为什么它对你不起作用。
<强> fup.php:强>
<?php
if ($_POST["submit"] === "Press")
{
$file = {$_POST["upfile"]};
$notes = $_POST["note"];
$path = "/path/to/folder";
// EDIT: Checking to make sure extension is mp3
if (strtolower(pathinfo("{$path}/{$file}", PATHINFO_EXTENSION)) !== "mp3")
sys_back("Unavailable mp3 format");
`cp {$path}/{$file} /path/to/new/folder/{$file}`;
// do something with $notes
}
?>
<form action="fup.php" method="POST">
File to upload:
<select name="upfile">
<?php $files = scandir("/path/to/folder");
foreach ($files as $file)
echo "\t\t<option>{$file}</option>\n";
?> </select><br />
Notes about the file: <input type="text" name="note"/><br />
<br />
<input type="submit" name="submit" value="Press" /> to upload the file!
</form>
由于您提到您将逐个浏览10,000个文件,因此下拉菜单默认情况下会自动选择下一个文件可能会有所帮助,因此您无需查看10,000个文件项目清单每次。您可以通过将foreach
循环更改为更像这样的内容来完成此操作:
$selectNext = false;
foreach ($files as $file)
{
echo "\t\t<option". ($selectNext ? " selected" : "") .">{$file}</option>\n";
$selectNext = ($file === $_POST["upfile"]);
}
答案 2 :(得分:0)