

Wordpress上でPHPとHTMLを使って、フロントページ上のformから画像をアップロードし、POST送信した後に固定ページにおける確認画面で画像を表示したいです。

下記のサイトを参考にして遷移後のページにphpを記述していますが、アップロードは失敗しました。と表示されます。  
おそらくWordpressにおける相対パスの記述が間違っていると思うのですが、どう表記したらいいかわかりません。  
エラーの内容は

[code]

    Warning:move_uploaded_ le(./img/20210217_1728.png):failed to open stream:
    No such le or directory in  ~/~/page.php.on line 58 
    
[/code]

となります。

[画像ファイルのアップロード①(HTML+PHPのみ) ](https://note.com/note256/n/n4b391f5457c0)

`$up_file = "img/". date("Ymd_His.") . mt_rand(1000,9999) . ".$ext";`  
の `"img/"` の部分

分かる方いらっしゃいましたら教えていただけると助かります。

### HTMLの記述

[code]

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <title>ファイル送信ページ1</title>
    </head>
    <body>
    <form method="post" enctype="multipart/form-data" action="file1.php">
    <input type="file" name="up">
    <input type="submit" value="アップロード">
    </form>
    </body>
    </html>
    
[/code]

### PHPの記述

[code]

    <?php
    $up_file = "";
    $up_ok = false;
    $tmp_file = isset($_FILES["up"]["tmp_name"]) ? $_FILES["up"]["tmp_name"] : "";
    $org_file = isset($_FILES["up"]["name"]) ? $_FILES["up"]["name"] : "";
    if( $tmp_file != "" &&
    is_uploaded_file($tmp_file) )
    {
    $split = explode('.', $org_file); $ext = end($split);
    if( $ext != "" &&
    $ext != $org_file )
    {
    $up_file = "img/". date("Ymd_His.") . mt_rand(1000,9999) . ".$ext";
    $up_ok = move_uploaded_file( $tmp_file, $up_file);
    }
    }
    ?>
    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <title>ファイル受信ページ1</title>
    </head>
    <body>
    <p><?php if( $up_ok ){ ?>
    アップロードされたファイルは <img src="<?= $up_file ?>"> です。
    <?php }else{ ?>
    アップロードは失敗しました。
    <?php } ?></p>
    <a href="file1.html">アップロードページへ戻る</a>
    </body>
    </html>
    
[/code]

質問者のみ


CC BY-SA 4.0
2021-02-17T09:53:27.213
74073
2021-02-19T11:07:41.647
2021-02-17T14:53:37.907
32986
44004
question
php wordpress 画像 form
Wordpress上でPHPとHTMLを使って、formをPOST送信した後に確認画面で 画像を表示したい


問題解決しました。相対パスの書き方がわかっておりませんでした。

`$up_file = "img/"` じゃなくて  
`$up_file = "./img"` と書いたら、

関数が機能して、imgフォルダの上の階層に  
どこどこ写真ファイルが入るようになりました。


CC BY-SA 4.0
2021-02-19T09:13:07.567
74134
2021-02-19T11:07:41.647
2021-02-19T11:07:41.647
3068
44004
74073
answer