Php 上传文件到mySQL数据库。代码帮助
好吧,我在将一个文件作为blob插入数据库时遇到了一些问题。我可以将文件上载到数据库中的文件夹中,但现在我想将文件作为blob插入数据库。我知道这通常不适合做,但我想做。不管怎样,我想知道是否有人有PHP代码可以将文件插入blob表?我尝试过使用它,但没有任何效果,也许我只是没有编写SQL语句,对吗Php 上传文件到mySQL数据库。代码帮助,php,mysql,blob,Php,Mysql,Blob,好吧,我在将一个文件作为blob插入数据库时遇到了一些问题。我可以将文件上载到数据库中的文件夹中,但现在我想将文件作为blob插入数据库。我知道这通常不适合做,但我想做。不管怎样,我想知道是否有人有PHP代码可以将文件插入blob表?我尝试过使用它,但没有任何效果,也许我只是没有编写SQL语句,对吗 <?php $target = "./"; $target = $target . basename( $_FILES['uploadedfile']['name']); $fil
<?php
$target = "./";
$target = $target . basename( $_FILES['uploadedfile']['name']);
$file=($_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
}else{
echo "There was an error uploading the file, please try again!";
}
mysql_connect("localhost","root","");
mysql_select_db("ivrsupport");
$sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
('$file') where PHONE_NUMBER = ('15555215554')");
$r=mysql_query($sql);
if(!$r){
echo "Error in query: ".mysql_error();
}
mysql_close();
?>
您需要将文件读入变量,然后插入它。。只给它文件名是不行的
$fp = fopen($basename, 'r');
$content = fread($fp, filesize($basename));
fclose($fp);
$sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
('$content') where PHONE_NUMBER = ('15555215554')");
您需要将文件读入一个变量,然后插入它。。只给它文件名是不行的
$fp = fopen($basename, 'r');
$content = fread($fp, filesize($basename));
fclose($fp);
$sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
('$content') where PHONE_NUMBER = ('15555215554')");
$file只包含文件名,而不包含其内容
请尝试以下操作:
<?php
$target = "./";
$target = $target . basename( $_FILES['uploadedfile']['name']);
$file=($_FILES['uploadedfile']['name']);
$fileContents = file_get_contents($file);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
}else{
echo "There was an error uploading the file, please try again!";
}
mysql_connect("localhost","root","");
mysql_select_db("ivrsupport");
$sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
('$fileContents') where PHONE_NUMBER = ('15555215554')");
$r=mysql_query($sql);
if(!$r){
echo "Error in query: ".mysql_error();
}
mysql_close();
$file只包含文件名,而不是其内容
请尝试以下操作:
<?php
$target = "./";
$target = $target . basename( $_FILES['uploadedfile']['name']);
$file=($_FILES['uploadedfile']['name']);
$fileContents = file_get_contents($file);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
}else{
echo "There was an error uploading the file, please try again!";
}
mysql_connect("localhost","root","");
mysql_select_db("ivrsupport");
$sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
('$fileContents') where PHONE_NUMBER = ('15555215554')");
$r=mysql_query($sql);
if(!$r){
echo "Error in query: ".mysql_error();
}
mysql_close();
我会避免在数据库中存储文件。这就是文件系统的用途,而且在这方面做得更好。博客圈里有数百万的帖子在解释为什么不这么做。即使是一个小应用程序,我也不会这么做。只是觉得脏。数据库中的blob不包含关于文件本身的元数据,而作为FS,可以通过多种方式查询文件大小、修改时间、权限等信息。。。我的$0.02将避免在数据库中存储文件。这就是文件系统的用途,而且在这方面做得更好。博客圈里有数百万的帖子在解释为什么不这么做。即使是一个小应用程序,我也不会这么做。只是觉得脏。数据库中的blob不包含关于文件本身的元数据,而作为FS,可以通过多种方式查询文件大小、修改时间、权限等信息。。。我的$0.02可能与我在您的问题中看到的重复,您实际上并没有读取文件数据,只是将其下载到服务器,并尝试在该数据库列中插入文件名。上面链接的文章向您展示了如何从磁盘读取文件并将其插入blob。右侧的“相关”链接将告知您对此的一些限制。从我在您的问题中看到的可能重复,您实际上并没有读取文件数据,只是将其下载到服务器,并尝试在该数据库列中插入文件名。上面链接的文章向您展示了如何从磁盘读取文件并将其插入blob。右边的“相关”链接会告诉你一些限制。我想这就是我现在的方向。谢谢我想这就是我现在的方向。谢谢