php - 在数据库中存储图像的 URL (PHP/MySql)

标签 php mysql

我在过去的两周里刚刚开始学习 PHP,我正在尝试编写一个向数据库发送信息(包括图像)的表单。 我的问题是:我想将图像保存在特定文件夹中,并仅将其 URL 保存在数据库中(甚至其名称,但它必须与我随图像插入的信息相关)。我设法使所有其他领域都能够正常工作,因为我不知道如何使其正常工作。 所以我需要帮助才能让它发挥作用。谢谢大家,祝您有美好的一天,我将在这里与您分享我的代码。

<?php 

if(isset($_POST['regie']))      $regie=$_POST['regie'];
else      $regie="";

if(isset($_POST['annonceur']))      $annonceur=$_POST['annonceur'];
else      $annonceur="";

if(isset($_POST['categorie']))      $categorie=$_POST['categorie'];
else      $categorie="";

if(isset($_POST['titre']))      $titre=$_POST['titre'];
else      $titre="";

if(isset($_POST['image']))      $image=$_POST['image'];
else      $image="";

if(isset($_POST['nombrepassage']))      $nombrepassage=$_POST['nombrepassage'];
else      $nombrepassage="";

if(isset($_POST['datefin']))      $datefin=$_POST['datefin'];
else      $datefin="";


if(empty($regie) OR empty($annonceur) OR empty($categorie) OR empty($titre) OR empty($image) OR empty($nombrepassage) OR empty($datefin))
    { 
    echo '<font color="red">Attention, aucun champs ne peut rester vide  !</font>'; 
    } 


else      
    { 

$db = mysql_connect('localhost', 'root', 'test123')  or die('Erreur de connexion '.mysql_error());


    mysql_select_db('geomedia',$db)  or die('Erreur de selection '.mysql_error()); 


    $sql = "INSERT INTO ajout(Régie, Annonceur, Catégorie, Titre, Lien, Image, Nombre_Passage, Date_Fin ) VALUES('$regie','$annonceur','$categorie','$titre','$image','$nombrepassage','$datefin')"; 


    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 


    echo 'Vos infos ont bien été ajoutées.'; 

    mysql_close();  
    }  
?>

最佳答案

您必须使用 <input type="file">为了那个原因。 您的表单应如下所示:

<form enctype="multipart/form-data" action="#" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
    Select file : <input name="my-file" type="file" />
    <input type="submit" name="send-file" />
</form>

那么你将不会通过 $_POST 访问该文件,而是通过 $_FILES 访问该文件: http://php.net/manual/en/features.file-upload.post-method.php

文档:

$_FILES['userfile']['name']

客户端计算机上文件的原始名称。

$_FILES['userfile']['type']

文件的 MIME 类型(如果浏览器提供此信息)。一个例子是“图像/gif”。然而,这种 mime 类型不会在 PHP 端进行检查,因此不要认为它的值是理所当然的。

$_FILES['userfile']['size']

上传文件的大小(以字节为单位)。

$_FILES['userfile']['tmp_name']

服务器上存储上传文件的临时文件名。

$_FILES['userfile']['error']

与此文件上传相关的错误代码。

此外,文档中有很多示例。

PHP 中的文件上传应该仔细设计,因为存在许多安全隐患。 处理这些问题的一个例子:https://www.tutorialspoint.com/php/php_file_uploading.htm

关于php - 在数据库中存储图像的 URL (PHP/MySql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40584889/

相关文章:

c# - C#/WPF访问MySQL的方式

mysql - Node.js mySQL 无法创建连接

php - WordPress 循环 : how to wrap each 3 posts into a div?

java - 如何覆盖移动浏览器的自动调整?

php - 将原始 SQL 'NOT' IN(太慢)转换为 Laravel Eloquent

php - 内部加入动态表数

php - 为包含的内容网站进行 Bootstrap 导航栏调整

php - symfony web 调试工具栏

mysql - 错误 1242 (21000) : Subquery returns more than 1 row?

mysql - 编写快速 MySQL INSERT 查询或优化该查询