スレッド表示 | フラット表示〕 全トピック 920 件中 239 番目 次≫ ≪前

ファイルのアップロードについて

created: 2006-05-24 22:45 | modified: 2006-05-25 23:51 | reply: 4

[3089] ファイルのアップロードについて

user: はなこ | created: 2006-05-24 22:45
お世話になってます。
いま、PHPにてファイルのアップロードをしようとしているのですが、
なかなかうまくいかずはまってしまっています。

move_uploaded_file($_FILES['userfile']['tmp_name'], "../lunch/menu/".$filename);

というコーディングを組んでいます。
これは、その日の昼食のメニューをまとめたものを、
端末からサーバーにアップしようとしているものです。
$filenameは、端末で送信するときのファイル名が入ります。

このコードを実行すると、

Warning: move_uploaded_file(/menu/kei.txt): failed to open stream: No such file or directory in ○○

というワーニングメッセージが表示されます。
○○には、実行PHPファイルのアドレスが表示されています。
kei.txtというのは、端末から送信しようとしているファイル名です。

サーバーに送ったファイルの移動先の階層は、次のようになっています。

実行ソースの階層      △△/up.php
ファイルを保存したい階層  △△/menu/kei.txt

使用するには相対パスがよいと思い、そのようにしたつもりです。
どこか間違っている箇所があるのでしょうか?
ご教授いただけましたら幸いです。
reply: 3090 返信 編集 削除

[3090] 相対パス指定の間違い

user: ゆうじ | created: 2006-05-25 00:02
こんばんわ。

メッセージからするとファイルが開けなかったということですので、
"../lunch/menu/"
この相対パスが間違ってるだけでないでしょうか。

"up.php" と同じ階層の "menu"、
その下の "kei.txt" ということなら
相対パスは、"menu/" で良いのでは。

プログラミングポリシーの話になりますが、
相対パスは混乱を招きやすいと私は感じてますので、
絶対パスで書けるところは絶対パスで書いてます。
Parent: 3089  reply: 3091 返信 編集 削除

[3091] フォルダの権限でした

user: はなこ | created: 2006-05-25 15:01
ゆうじさん、ご返信ありがとうございました。
自分でも調べてみて回ったところ、原因がファイルを移動する先の、
フォルダの「書き込み権限」が問題であることがわかりました。
ご意見ありがとうございました。

別件で恐縮なのですが、PHPにてサーバーの指定の場所に
フォルダを作成することって、さすがに無理ですよね・・・・。
もし作成ができるなら、いろいろ試せそうで面白いのですが。
Parent: 3090  reply: 3092 返信 編集 削除

[3092] 複数ファイルのアップロードについて

user: はなこ | created: 2006-05-25 16:34
連続の書き込みをお許しください。
標題にもあるように、複数のファイルのアップロードをためしてみました。

<INPUT TYPE="file" NAME="userfile[]" style="position:absolute;top:10;left:140;">
<INPUT TYPE="file" NAME="userfile[]" style="position:absolute;top:40;left:140;">

<略>

ファイル設定フォームを2つ作った場合、以下の
アップロードファイルを確認する関数と、コピーする関数にも、添字をつけてやる必要があると思われます。

if (is_uploaded_file($_FILES['userfile']['tmp_name'])){
move_uploaded_file($_FILES['userfile']['tmp_name'], "../upload/".$gvg_ymd."/".$filename);


しかし、それでは、アップローダーファイルを10個作ろうとした場合、
それぞれに対応した関数を添字を付加して10個作ってやらなければならないということでしょうか?
さすがにそれだと、見た目にもよくないしメンテナンスも大変だと思いますので、
なんとか1回で設定させてやることはできないでしょうか?
Parent: 3091  reply: 3093 返信 編集 削除

[3093] Re. 複数ファイルのアップロードについて

user: ゆうじ | created: 2006-05-25 23:51
こんばんわ。

> しかし、それでは、アップローダーファイルを10個作ろうとした場合、
> それぞれに対応した関数を添字を付加して10個作ってやらなければならないということでしょうか?

この「アップローダーファイル」と
「それぞれに対応した関数」というのが
何を指しているのか読めないのですが、
配列でファイルをアップロードした時の処理ということならば、

var_dump($_FILES); とすれば
アップロードされたファイルに関する値が確認出来ますので
必要なところをループでまわしてあげるといかがでしょう。
Parent: 3092  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 239 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑