我在localhost服务器上运行 C程序,生成一些文件(将其输出写入这些文件)。然后我用php 将所有这些文件压缩在一起。现在我想使用一些PHP脚本将生成的zip文件上传到mysql服务器,但我不希望用户通过单击选择文件按钮使用表单上传这些文件,但我想尽快上传这些文件使用php脚本生成到mysql。
<?php
//get content of json file
require_once("zip.php");
$str = file_get_contents("program/heatmap_parameters.json");
//decode the JSON
$json = json_decode($str,true);
//echo '<pre>' . print_r($json, true) . '</pre>';
foreach ($json['parameters'] as $params) {
echo $params[3]."<br>";
$files_to_zip = array("program/".$params[3]);
var_dump($files_to_zip)."<br>";
//$files_to_zip = array("program/cctv2.mp4.json");
//if true, good; if false, zip creation failed
$zip_name = "program/".$params[3].".zip";
//zip the files
$result = create_zip($files_to_zip,$zip_name);
}
//connect to database
require_once("database/conn.php");
//upload zip file to database without displaying any form.
?>
我需要一种方法来上传我生成的文件以保存到mysql,而无需从表单中选择它。
<form action="" method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile">
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
include '../database/conn.php';
$sql = "INSERT INTO upload (name, content ) ".
"VALUES ('$fileName', '$content')";
$query = mysqli_query($conn,$sql);
if(!$query){
die("Cannot Insert".mysql_error());
}
}
我如何使这段代码不需要表格
答案 0 :(得分:0)
在线上回答你的问题,
您无法上传没有表单/输入类型文件元素的文件,因为这对Web来说是一个很大的安全漏洞。
要将任何文件上传到服务器,服务器需要具有文件全部信息的文件对象。该信息将由您上传文件的客户端提供。它还将具有文件格式的tmp位置,服务器将在该位置获取该文件。
您可以使用curl将文件从一台服务器复制到另一台服务器,也可以 写一个bash脚本,将文件从一个地方复制到另一个地方 您可以使用PHP运行该bash脚本。
希望这对你有所帮助!