Php 上载期间重命名图像不使用Mysql集

Php 上载期间重命名图像不使用Mysql集,php,Php,我有下面的代码,我希望在上传到用户id时更改/重命名图像名称,这样我可以避免文件覆盖,并在添加重命名代码后将名称插入数据库。代码无法上传图像或更新数据库,我们显示出任何错误,但如果我删除重命名代码,一切正常。 有人能帮我解决这个问题吗?或者有没有更好的办法 <?php $user_id = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8'); $username = htmlentities($_SESSION['user'

我有下面的代码,我希望在上传到用户id时更改/重命名图像名称,这样我可以避免文件覆盖,并在添加重命名代码后将名称插入数据库。代码无法上传图像或更新数据库,我们显示出任何错误,但如果我删除重命名代码,一切正常。 有人能帮我解决这个问题吗?或者有没有更好的办法

<?php
$user_id = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$username = htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
require("connection.php");
if(@$_POST ['submit']) {
    $file = $_FILES ['file'];
    $name1 = $file ['name'];
    $type = $file ['type'];
    $size = $file ['size'];
    $tmppath = $file ['tmp_name'];
    if($type == 'jpeg' || $type == 'png' || $type == 'jpg') {
        $name1 = $user_id.$type; // rename image
        if($name1!="") {
            if(move_uploaded_file ($tmppath, 'users/'.$name1)) {
                $sql=("INSERT INTO USERS set photo='$name1' WHERE username='$username'");
                mysql_query ($sql) or die ('could not updated:'.mysql_error());
                echo ("Profile picture updated");
            }
        }
    } 
}
?>

首先是更改
$name1=$user\u id.$type

$name1=$user\u id.“.”$type
其次,清理sql

还有。文件类型是image/jpeg,所以它不起作用。它永远不会超过你的假设


创建一个开关以检查文件类型,或者只提取文件的最后3个字符。

尝试此操作可将
$\u文件重新组织到一个您可以理解并轻松使用的数组中

无耻插头


您可以试试这个,可能会对您有所帮助

<?php
$user_id = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$username = htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
require("connection.php");
if(@$_POST ['submit']) {
$file = $_FILES ['file'];
$name1 = time().$file ['name']; // rename image
$type = $file ['type'];
$size = $file ['size'];
$tmppath = $file ['tmp_name'];
if($type == 'image/jpeg' || $type == 'image/png' || $type == 'image/jpg') {
    if($name1!="") {
        if(move_uploaded_file ($tmppath, 'users/'.$name1)) {
            $sql=("INSERT INTO USERS set photo='$name1' WHERE username='$username'");
            mysql_query ($sql) or die ('could not updated:'.mysql_error());
            echo ("Profile picture updated");
        }
    }
} 
}}
?>

您可以使用这一概念,但可以根据需要编辑此概念

<?php
if ($_FILES['imagepath']['name'] != "")
{
    $uploaddir = 'images/';
    $uploadfile = $uploaddir . basename($_FILES['imagepath']['name']);
    if (move_uploaded_file($_FILES['imagepath']['tmp_name'], $uploadfile))
    {
    $rename = $_FILES['imagepath']['name'];
                $rename = rand(0,1500000000).$rename;
                $filename = strtolower(($rename));
                if (file_exists(($uploaddir.$_FILES['imagepath']['name'])))
                    rename(($uploaddir.$_FILES['imagepath']['name']), ($uploaddir.$filename));
    echo $_FILES['imagepath']['name']."&nbsp;with name&nbsp;".$filename."&nbsp;file uploaded successfully";
    }
}
?>


clean your sql是什么意思?@Paul我更改了function.move-uploaded-file没有这样的文件我不同意,像这样将变量传递到sql字符串是完全可以接受的。请确保您有那个目录,并进行var转储以查看您的$name1是什么,并检查它是否符合您的要求。
<?php
$user_id = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$username = htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
require("connection.php");
if(@$_POST ['submit']) {
$file = $_FILES ['file'];
$name1 = time().$file ['name']; // rename image
$type = $file ['type'];
$size = $file ['size'];
$tmppath = $file ['tmp_name'];
if($type == 'image/jpeg' || $type == 'image/png' || $type == 'image/jpg') {
    if($name1!="") {
        if(move_uploaded_file ($tmppath, 'users/'.$name1)) {
            $sql=("INSERT INTO USERS set photo='$name1' WHERE username='$username'");
            mysql_query ($sql) or die ('could not updated:'.mysql_error());
            echo ("Profile picture updated");
        }
    }
} 
}}
?>
<?php
if ($_FILES['imagepath']['name'] != "")
{
    $uploaddir = 'images/';
    $uploadfile = $uploaddir . basename($_FILES['imagepath']['name']);
    if (move_uploaded_file($_FILES['imagepath']['tmp_name'], $uploadfile))
    {
    $rename = $_FILES['imagepath']['name'];
                $rename = rand(0,1500000000).$rename;
                $filename = strtolower(($rename));
                if (file_exists(($uploaddir.$_FILES['imagepath']['name'])))
                    rename(($uploaddir.$_FILES['imagepath']['name']), ($uploaddir.$filename));
    echo $_FILES['imagepath']['name']."&nbsp;with name&nbsp;".$filename."&nbsp;file uploaded successfully";
    }
}
?>