如何使用PHP / Flex将图像上传到mysql数据库

时间:2012-11-20 14:53:38

标签: php mysql flex actionscript

我已经在网上搜索了几个星期,但找不到我的问题的解决方案。

我正在使用Flex(front-end)PHP/MySql(Back-end)开发Web应用程序。

现在我想让用户为他们的个人资料图片上传图片...我正在将他们上传到服务器上的目录。现在我的老板“觉得”他们应该直接存储到数据库,不仅存储图像的链接,而且存储整个内容。

请帮帮我们......我被困了!!!

2 个答案:

答案 0 :(得分:0)

通常,最好将图像存储在文件系统上(速度和大小)。为此,您可以将图像存储在诸如“images / profiles / {userID} .jpg”之类的位置。如果您确实想要将图像存储在数据库中,只需将列类型设置为blob并将图像内容插入其中。有关详细说明在mysql数据库中存储图像的文章,请参阅here

答案 1 :(得分:0)

首先,在您上传文件的表单中,您应该使用以下标记:

enctype="multipart/form-data" 

您还需要将该字段指定为以下之一:

  

TINYBLOB   ,BLOB   ,MEDIUMBLOB   ,LONGBLOB

最终修改您的数据库的代码,这样做:)

<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
   $fileName = $_FILES['userfile']['name'];
   $tmpName  = $_FILES['userfile']['tmp_name'];
   $fileSize = $_FILES['userfile']['size'];
   $fileType = $_FILES['userfile']['type'];

   $fp      = fopen($tmpName, 'r');
   $content = fread($fp, filesize($tmpName));
   $content = addslashes($content);
   fclose($fp);

if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}

$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed'); 

} 

&GT;