上传文件而不使用php但没有php格式

时间:2015-10-13 06:05:45

标签: php mysql

我在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());
                }

} 

我如何使这段代码不需要表格

1 个答案:

答案 0 :(得分:0)

在线上回答你的问题,

  

您无法上传没有表单/输入类型文件元素的文件,因为这对Web来说是一个很大的安全漏洞。

要将任何文件上传到服务器,服务器需要具有文件全部信息的文件对象。该信息将由您上传文件的客户端提供。它还将具有文件格式的tmp位置,服务器将在该位置获取该文件。

  

您可以使用curl将文件从一台服务器复制到另一台服务器,也可以   写一个bash脚本,将文件从一个地方复制到另一个地方   您可以使用PHP运行该bash脚本。

希望这对你有所帮助!