Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件未以.zip格式保存在数据库中_Php_Database_Phpmyadmin_Zip - Fatal编程技术网

Php 文件未以.zip格式保存在数据库中

Php 文件未以.zip格式保存在数据库中,php,database,phpmyadmin,zip,Php,Database,Phpmyadmin,Zip,我的上传表单只允许人们上传.zip和.rar文件。我想确保每当用户上传他/她的文件时,它都会作为zip文件插入到数据库中 到目前为止,我所做的是将数据库中的类型更改为varbinary。我还插入了带有$fileName变量的文件 我的代码: <?php $ftp_server = "myserver"; $ftp_user_name = "myuser"; $ftp_user_pass = "mypass"; $source_file = $_FILES['file']['tmp_nam

我的上传表单只允许人们上传.zip和.rar文件。我想确保每当用户上传他/她的文件时,它都会作为zip文件插入到数据库中

到目前为止,我所做的是将数据库中的类型更改为varbinary。我还插入了带有
$fileName
变量的文件

我的代码:

<?php

$ftp_server = "myserver";
$ftp_user_name = "myuser";
$ftp_user_pass = "mypass";
$source_file = $_FILES['file']['tmp_name'];
$fileName = $_FILES['file']['name'];
$fileType = $_FILES['file']['type'];
// get de bestand extensie
$path_parts = pathinfo($_FILES["file"]["name"]); 
$extension = $path_parts['extension'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$destination_folder = "/public_html/wp/wp-content/plugins/AbonneerProgrammas/FilesUpload";
$destination_file = $destination_folder . "/" . basename($_FILES['file']['name']);
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
ftp_pasv($conn_id, true); 

// some code for the connection and only allowing .zip and .rar files.

if (!$upload) { 
    echo "Er is iets fout gegaan, excuses voor het ongemak";
} else {

    // insert data in de database
    global $wpdb;
     $number_of_rows_inserted = $wpdb->insert('wpex_programma', [
     'naam' => $fileName]);

      var_dump($number_of_rows_inserted);


当你点击什么,确切地说?看起来您正在将文件名插入数据库。当我点击数据库中的P7_03_uitwerking.zip时,文件本身保存在哪里。当用户上传文件时,它最终会保存在远程ftp服务器和数据库中(我现在尝试的是后者)。您可以看到所有文件保存在
$destination\u文件夹
变量中的路径@大卫:“我现在正在尝试的是后一个”——看起来你正在倒退尝试。在尝试将文件保存到数据库之前,您正在尝试从数据库下载该文件。现在您只需保存文件名。查看对
$wpdb->insert()
的调用。传递给它的唯一参数是文件名。通常,这种方法是只在数据库中存储对文件的引用,而不是文件本身。要存储文件本身,您可能需要先对其进行Base64编码。您没有单击“数据库”中的任何内容,这种措辞甚至没有任何意义。这是phpMyAdmin(数据库管理前端)为您提供的功能。如果您不喜欢它的工作方式,那么您将不得不去做一些研究,看看它是否可以以某种方式配置,如果不能,请编写您自己的功能来提供这样的下载。(或者意识到,在大多数正常情况下,文件并不真正属于数据库…@JohanDelft:是的,这是可能的。通常推荐的方法是将文件保存在文件系统上,并将文件路径保存在数据库中。然后在应用程序中使用数据库数据创建指向文件的链接。理想情况下,这些链接将指向一个PHP脚本,并为数据库记录提供一个标识符。该脚本将使用标识符从数据库中获取记录,并使用该记录中的路径将文件流式传输给用户。DB记录还可以包括文件名、MIME类型、大小等内容。