当然这是可能的。您所要做的就是实现两个部分:
- 在单个 php 脚本中实现的服务器端的简单 API。它接受一个文件并将其存储在某个地方。也许您想添加一些安全性或合理性检查,但这是另一回事。
- 客户端的一个小脚本,它迭代数组并使用 API 一个一个地上传每个文件。
就是这样,不需要任何表格,也不需要手动上传单个对象。
根据要求,我添加了一个简短的示例。没什么花哨的,只是为了展示这个想法:
服务器端 API,这里调用的原始 php 脚本upload.php
:
<?php
// this is where uploaded files get dumped to
define('FILES_STORAGE','/some/path/writeable/for/http-server');
// $_FILES holds the meta data of the uploaded file as stored temporarily
syslog(LOG_DEBUG,sprintf("upload API accepted file '%s'",$_FILES['filedata']['name']));
// copy file to its final destination (temp file gets removed automatically)
copy ( $_FILES['filedata']['tmp_name'] , FILES_STORAGE.$_FILES['filedata']['name']);
// some feedback to the client, might be ignored
echo sprintf("file '%s' accepted and stored. ", $_FILES['filedata']['tmp_name']);
?>
客户端脚本,我制作了一个简单的 bash 脚本,尽管您可以使用任何您想要或在客户端可用的语言。它只上传一个文件,但显然这可以在处理文件列表或其他任何内容的循环中完成:
#!/bin/bash
curl -i -F name=test -F filedata=@test.png http://api.myserver.org/upload.php
当您执行脚本时,文件将被上传并移动到 API 文件顶部定义为FILES_STORAGE
. 不进行错误、安全性和合理性检查,因为这是概念验证。