PHP MySql:将空上传值插入数据库

时间:2014-07-04 11:26:26

标签: php mysql

我上传图片并将名字放在MySQL数据库中使用以下代码:

PHP:

if (!empty($_FILES["profile_image"])) {

    $output_dir = "/uploads/files/1/avatar/";
    $fileName = preg_replace('/\s+/', '_', $_FILES["profile_image"]["name"]);
    $filenamekey = md5(uniqid($_FILES["profile_image"]["name"], true)); 
    $type = pathinfo($fileName, PATHINFO_EXTENSION);
    move_uploaded_file($_FILES["profile_image"]["tmp_name"],$output_dir.$filenamekey.'.'.$type);
    $profile_image      = $filenamekey.'.'.$type;

    } else {

    $profile_image = '';
}

HTML:

<input name="profile_image" type="file" id="input1" />

当我发送empty输入PHP代码时,不上传图片但是使用md5(uniqid)将空值插入数据库,如下所示:

enter image description here

当我发送空值时,如何解决此问题?!

3 个答案:

答案 0 :(得分:1)

改变条件,

if (!empty($_FILES["profile_image"])) {

if (!empty($_FILES["profile_image"]["name"])) {

答案 1 :(得分:0)

在第5行添加条件:

$filenamekey = !empty($_FILES["profile_image"]["name"]) ? md5(uniqid($_FILES["profile_image"]["name"], true)) : '';

答案 2 :(得分:0)

你需要放入以下IF条件,

替换

if (!empty($_FILES["profile_image"])) {

if (!empty($_FILES["profile_image"]['name'])) {

现在如果您无法选择文件并提交,则会在数据库中插入空白值。