1

在我当前的代码中,我只插入文件的文件名,文件存储在文件夹中。我还想将文件存储在我的mysql数据库中。我怎样才能做到这一点。

我的表:id file_name fcontent (longblob)

include 'db.php';
if(isset($_FILES['image'])){
    $errors= array();
    $tablename = "files";
    $file_name = $_FILES['image']['name'];
    $file_size =$_FILES['image']['size'];

    $file_tmp =$_FILES['image']['tmp_name'];
    $content =$_FILES['image']['fcontent']; // content in database

    $sql="INSERT INTO $tablename(file_name,content)VALUES('" . mysql_real_escape_string($file_name) . "')"; // here i need to insert the content i assume

    $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); //convert to lower

$extensions = array("jpeg","jpg","png","txt","html","php","gif");   // File extension that are 

allowed 

if(in_array($file_ext,$extensions )=== false){ // check if value exists in array
     $errors[]="extension not allowed.";


    }
    if($file_size > 2097152){ // cant be greater than 2mb
    $errors[]='File size must be excately 2 MB';

    }               
    if(empty($errors)==true){
        mysql_query($sql);
        move_uploaded_file($file_tmp,"upload/".$file_name); 

        echo "Success";
        header("location:files.php"); // Send back to main page

    }else{
        print_r($errors);
 }

}
?>      
4

4 回答 4

4

就我而言,我不建议将图像存储在数据库中,原因如下: - 太重而无法管理。- 缺乏速度(尽管有更多的图像,如果它们很重的话)。

所以我建议你把图像放在一个目录中,它的属性(类型、大小、作者......)当然还有它们到数据库中目录的链接,

于 2013-03-25T16:52:19.580 回答
3

目前我可以想到两种方法

1.使用

BLOB       
MEDIUMBLOB 
LONGBLOB   

mysql 中的数据类型 ... 使用file_get_contents()获取内容并插入内容

  1. 利用

      text
    

    数据类型..对内容进行编码,然后保存内容..

或者,您可以只存储文件的路径......就像存储http://domain/img.jpg 在表格列中

于 2013-03-25T16:50:25.477 回答
0

一个例子:

  $link = mysqli_connect("localhost", "root", "");
  mysqli_select_db($link, "mydb"); 

  $stmt = $link->prepare("insert into myfile (id, arq) values (?, ?)");

  $stmt->bind_param("ss", $id, $file);

  $id = 5;
  $file = file_get_contents("C:\\myfile.png");

  $stmt->execute();

如果您想通过一些 HTML 表单 ( ) 上传文件,请enctype='multipart/form-data'更改该行

  $file = file_get_contents("C:\\myfile.png");

  $file = file_get_contents($_FILES['myFileName']['tmp_name']);

其中myFileNamein$_FILES['myFileName']是输入文件 html 元素的名称。

于 2018-05-17T23:18:24.083 回答
-1

你有什么问题?关于这个问题有各种各样的话题,一个是这个

于 2013-03-25T16:46:51.857 回答