質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

php move_uploaded_fileエラーとなる(failed to open stream-Unable to move-Operation not permitted)

Ms.yy
Ms.yy

総合スコア83

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

2回答

0評価

0クリップ

6354閲覧

投稿2019/11/01 12:16

編集2019/11/07 21:19

前提・実現したいこと

 画像アップロードシステムを組み込みたい

###問題点
教本やwebサイトの手順通りform画面と受け取る画面を作ったがエラーとなり画像をアップロードすることができない。

よろしくお願いします。

発生している問題・エラーメッセージ

Warning: move_uploaded_file(http://localhost/calendar_php/folio/imageout.php/calendar_php/folio/image20191101210345スクリーンショット 2019-10-31 21.21.13.png): failed to open stream: HTTP wrapper does not support writeable connections in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 54 Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/php4B2fBp' to 'http://localhost/calendar_php/folio/imageout.php/calendar_php/folio/image20191101210345スクリーンショット 2019-10-31 21.21.13.png' in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 54 Warning: chmod(): Operation not permitted in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 56

imageout.php

<form action="" method="post" enctype="multipart/form-data"> <input type="file" name="image" > <input type="submit" value="確認" > </form> <?php $image=date('YmdHis').$_FILES['image']['name']; move_uploaded_file($_FILES['image']['tmp_name'], 'http://localhost/calendar_php/folio/imageout.php/calendar_php/folio/image' .$image); chmod("image",0666); ?>

試したこと

相対パスも設定してみましたが、同じくエラーとなりました。

<?php $image=date('YmdHis').$_FILES['image']['name']; move_uploaded_file($_FILES['image']['tmp_name'],'image'//相対パス(imageフォルダ) .$image); chmod("image",0666); ?>

###相対パスのエラー

Warning: move_uploaded_file(image20191101232932スクリーンショット 2019-10-31 21.46.25.png): failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 66 Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/phpl1b1sO' to 'image20191101232932スクリーンショット 2019-10-31 21.46.25.png' in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 66 Warning: chmod(): Operation not permitted in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 68

###chmod()→move_uploaded_file()でのエラー

Warning: chmod(): Operation not permitted in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 51 Warning: move_uploaded_file(image/20191102122837スクリーンショット 2019-11-01 21.14.10.png): failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 55 Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/phpBecTWu' to 'image/20191102122837スクリーンショット 2019-11-01 21.14.10.png' in /Applications/XAMPP/xamppfiles/htdocs/calendar_php/folio/imageout.php on line 55

###ディレクトリ

/Applications/XAMPP/htdocs/calendar_php/folio/image

イメージ説明

補足情報(FW/ツールのバージョンなど)

###追記(画像表示可)
session_startを追記したら無事に表示されるようになりました。

<?php session_start(); chmod("image/",0666); $image=date('YmdHis').$_FILES['image']['name']; move_uploaded_file($_FILES['image']['tmp_name'], 'image/'.$image); $_SESSION['join']=$_POST; $_SESSION['join']['image']=$image; <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="image" > <input type="submit" value="確認" > </form> <?php if($_SESSION['join']['image'] !==''):?> <img src="image/<?php print($_SESSION['join']['image'])?>"> <?php endif;?> ?>

imageフォルダアクセス権
自分:読み/書き
admin:読み出しのみ
everyone:読み出しのみ

OS:mac

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2019/11/01 12:25 編集

「同じくエラー」であって「同じエラー」ではないですよね。 別パターンを試してエラーとなったのならそれはそれでエラー文をコピペして提示願います。 あと、提示の画像では階層がわかりづらいです。 MACは詳しくないですが、pwdコマンドか何かを利用してimageout.phpのディレクトリパスを提示されたほうが良いのではと。 (まあhttp://~だとNGなこととか、明らかにパスの指定の仕方が違うことはひと目でわかるのですが)
Ms.yy

2019/11/01 23:49

すみません、昨日回答が送れていませんでした。 ディレクトリと相対パスのエラー追記させて頂きました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。