Php 使用表单上载服务器文件
我有一个非常简单的表单,但我的情况不同。我不想从计算机上浏览。我的文件位于我的服务器上,因此我如何在表单字段中浏览服务器文件。如果我无法浏览,我可以提供任何位置,以便它可以再次上载到我的服务器上,但位置不同,参数也不同,因此我不想使用移动方法 我不想使用远程url上传方法,因为远程url方法我无法检查文件类型,如果可以使用curl进行检查,那么我的表单处理脚本也不接受链接,因为它不是有效的文件格式。解决此问题的任何想法都将大有帮助 我不想为用户我必须提交这些文件使用的形式Php 使用表单上载服务器文件,php,Php,我有一个非常简单的表单,但我的情况不同。我不想从计算机上浏览。我的文件位于我的服务器上,因此我如何在表单字段中浏览服务器文件。如果我无法浏览,我可以提供任何位置,以便它可以再次上载到我的服务器上,但位置不同,参数也不同,因此我不想使用移动方法 我不想使用远程url上传方法,因为远程url方法我无法检查文件类型,如果可以使用curl进行检查,那么我的表单处理脚本也不接受链接,因为它不是有效的文件格式。解决此问题的任何想法都将大有帮助 我不想为用户我必须提交这些文件使用的形式 <form a
<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>
要上载的文件:
关于该文件的注释:
上传文件!
你不能
如果您希望用户将文件从您的服务器复制/移动到同一台机器的另一个路径,您必须:
如果您的脚本“无法接受链接”,请更改它。对此我仍不清楚。我不知道你为什么要用HTML来做这件事,而不是直接在你的服务器上修改文件 我也不确定您正在修改每个文件的哪些详细信息:
- 你在修改什么样的细节
- 这些详细信息存储在哪里
- 如果文件是通过表单提交上传的,您将如何修改这些详细信息
<?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>
您可以使用
classic文件管理器
我也出于同样的目的使用了它
我不认为您可以使用
来完成此操作,但您可以使用PHP函数获取特定文件夹中的文件列表,然后根据需要将其呈现给用户。@travesty我不希望用户使用表单提交这些文件。您说您希望能够在表单字段中浏览服务器文件。我所说的“用户”是指任何查看表单的人。您可以将文件列表放在下拉列表或其他地方,然后从该列表中进行选择,然后提交表单,并在fup.php
脚本中,获取表单值并执行任何您想要的操作(复制、移动等)。如果这不是你想要的,你必须明确你想要的是什么样的交互以及你的预期结果。@Travesty3我的服务器中有10000个mp3,我想通过不同的表单处理一个接一个地上传它们,所以我有所有这些文件的清晰细节,但我不知道如何用我的新处理器将它们再次上传到服务器。以前它是以论坛的形式出现的,现在它不同了。我以前尝试过同样的事情,而且文件位于服务器中。我得到的错误。类似于我刚刚传递链接时无法获得的mp3格式。如果你能显示错误产生时使用的代码,我可以帮助你找出错误所在。您可能需要打开文件并将句柄传递给函数,而不是传递文件的路径。这与上面的代码相同非常简单的php上载,可以处理浏览上载。如果您可以帮助打开远程文件并上载,这将是一个很好的帮助。上面的代码中没有任何部分会产生关于不可用的mp3格式。您一直在谈论在服务器上打开一个文件,然后将其上载到服务器。那根本不是上传。上载是指将文件从一个设备传输到另一个设备。为了上传它,你必须先下载它。您所说的是将文件从一个位置复制到另一个位置。如果你想通过表单提交上传文件,你必须先下载文件。同样,产生mp3格式错误的代码在哪里
$selectNext = false;
foreach ($files as $file)
{
echo "\t\t<option". ($selectNext ? " selected" : "") .">{$file}</option>\n";
$selectNext = ($file === $_POST["upfile"]);
}