
お世話になります。
PHPでファイルをアップロードして管理するプログラムを作成していますが、日本語名がどうしても文字化けし、あまり日本語名を使わない方がいいという意見もあることから、どのようなファイル名でも指定できるようにして、保存するとき、プログラム側で、ファイル名を自動でYYYYMMDDHHII(例:200504160033.doc)みたいにしたいのですが、どこをいじったらよいのでしょうか。
(もし、日本語のファイル名が使えたとしても、同名のファイルだと、上書きされる問題もあるので。これだと、そういう問題もないと思います)何かアドバイスをいただけたらと思い、投稿しました。よろしくお願いいたします。
受け取る側のファイル.php
$uploaddir = "./images/";
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
No.2ベストアンサー
- 回答日時:
$_FILES['userfile']['tmp_name']
は、phpで自動作成されたテンポラリファイル名ですので、
クライアントのファイル名を利用したいときは、
$_FILES['userfile']['name']
を指定します。
<?php
$uploaddir = "./images/";
list($file_name,$file_type) = explode(".",$_FILES['userfile']['name']);
$dateformat=date("Ymdhis");
$uploadfile = "$uploaddir$dateformat.$file_type";
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
?>
No.1
- 回答日時:
php4から標準的なアップロード機能では$uploadfileが保存先のファイルパス + ファイル名+拡張子となっています。
そのスクリプトを修正するのであれば保存先を変更するだけの話しとなります。
$dateformatはstrftime関数などでお好きな形式で整形してください。
$uploaddir = "./images/";
list($file_name,$file_type)=explode(",",$_FILES['tmp_name']);
$dateformat="200504160033";
$uploadfile = $uploaddir.$dateformat.$file_type
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
参考URL:http://www.php.net/manual/ja/function.strftime.php
この回答への補足
ご回答ありがとうございます。
ただ、試してみたところ、ファイル名が200504160033となっただけで、拡張子が消えてしまいました。
今、いろいろといじっているのですが、まだ解決していません。よろしかったら拡張子はそのままに、保存できる方法はないでしょうか。よろしくお願いいたします。
今やったこと。
■$dateformat=date("Ymdhi");
■list($file_name,$file_type)=explode(",",$FILES['userfile']['tmp_name']); ←こんなふうにしたり、分割条件のカンマをピリオドにしたりしたのですが、うまくいきません・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
PHPのエラーの解消法について教...
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
フォームで戻った際に入力済み...
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
$_SESSIONに渡した後はそのまま...
-
Flaskでサーバー立ち上げに関して
-
テキストボックスの値を取得したい
-
php+mysqlでの重複チェックにつ...
-
POSTの項目に追加
-
ファイル名を変更してアップロ...
-
VBA で、スペースを含むファイ...
-
name属性が全角の場合・・・
-
php、sqlite3にデーター追加で...
-
PHP5でsimple_xml_load_fileす...
-
PHP等を用いて在庫数を表示・管...
-
Smartyのforeachのnameに変数を...
-
sqlite文字列を格納、出力
-
scanfでの読み込み文字数制限
-
CakePHP テーブル名カラム名の...
-
あるカラム内の最初の一文字と...
-
DB接続やInsertでのエラーを画...
-
Fortranでのファイル名操作につ...
-
トレイトの変数の扱い方
-
if文のもっとスマートな書き方
おすすめ情報