1

ユーザーが自分のサムネイルを自分のサイトにアップロードできるように取り組んでいます。私が持っているコードは

$allowedExts = array("jpg", "jpeg", "gif", "png");
        $explode = explode(".", $_FILES["file"]["name"]);
        $extension = end($explode);
        if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/pjpeg") ||   ($_FILES["file"]["type"] == "images/jpg")) && ($_FILES["file"]["size"] < 50000) && in_array($extension, $allowedExts))
        {
            $sDate = date("m-d-Y");
            $sRandString = randomString(50);
            $sFileName = rename($_FILES["file"]["tmp_name"], $sDate . $sUsername . $sRandString);   //The name of the file
            $sTargetLink = $_PARAM["ThumbnailDir"] . $sFileName;
        
            if ($_FILES["file"]["error"] > 0)
                echo "There has been an unexpected error, we're working on fixing it as soon as possible. Please try again later.";
            else
            {
                if (file_exists($_PARAM["ThumbnailDir"] . $sFileName))
                {
                    unlink($_PARAM["ThumbnailDir"] . $sFileName);
                    $sFileLocation = $_PARAM["WebsiteAddress"]."images/thumbnails/".$sFileName; //The location of the file
                    move_uploaded_file($_FILES["file"]["tmp_name"],$_PARAM["ThumbnailDir"] . $sFileName);
                    echo "The thumbnail has been successfully uploaded.";
                    unlink($_FILES["file"]["tmp_name"]);
                }
                else
                {
                    $sFileLocation = $_PARAM["WebsiteAddress"] . "images/thumbnails/" . $sFileName; //The location of the file
                    $move = move_uploaded_file($_FILES["file"]["tmp_name"], $sTargetLink);
                    if ($move) echo "The thumbnail has been successfully uploaded.";
                    unlink($_FILES["file"]["tmp_name"]);
                }
            }
        }

次に、リンクの場所がデータベースに保存され、画像への検索可能なリンクが許可されます。ただし、送信されるたびに、ページはこれを返します。

警告: move_uploaded_file(C:\xampp\xxxxx\php3D71.tmp): ストリームを開くことができませんでした: 117 行目の C:\xampp\xxxxxxx\xxxxx\xxxx.php にそのようなファイルまたはディレクトリはありません

警告: move_uploaded_file(): 'C:\xampp\xxxxx\php3D71.tmp' を C:\xampp\xxxxxxxxx\xxx\xx\x.php の 'C:\xampp\xxx\xxx\thumbnails1' に移動できません117行目

何が悪いのかわかりません。フォームは enctype="multipart/form-data" です 何か提案はありますか? ありがとうございました。

4

1 に答える 1

1

問題1-
に変更してみてください-

$sFileName = $sDate . $sUsername . $sRandString;
rename($_FILES["file"]["tmp_name"], $sFileName);   //The name of the file
$sTargetLink = $_PARAM["ThumbnailDir"] . $sFileName;

rename()はtrueを返しているので、この行-

$sTargetLink = $_PARAM["ThumbnailDir"] . $sFileName;

になりつつある

$sTargetLink = 'thumbnails' . 1; //  => thumbnails1

問題2-
警告/エラーは、フォルダmove_uploaded_file()が見つからないためです。thumbnails宛先パス/ディレクトリを再確認してください。それが絶対に正しいことを確認してください。

もう1つの考えられる問題は、フォルダを示す&の/間に表示されないことです。-に変更するのと同じくらい簡単かもしれません$_PARAM["ThumbnailDir"]$sFileNamethumbnails ~ ($_PARAM["ThumbnailDir"])

$sTargetLink = $_PARAM["ThumbnailDir"] .'/'.$sFileName;
于 2012-12-31T22:20:36.003 に答える