08/11/15 15:31:44 k8oNRHMF
URLリンク(www.exploader.net)
ここみたいな感じにするにはファイル名とか連番とかの情報をテキストで読み書きするのではなくMYSQLとかでDB管理しないとだめでしょうか?
19:nobodyさん
08/11/15 21:21:27
全く同じものが作りたいの?
拡張の仕方でテーブル構成はだいぶ変わるけど
20:nobodyさん
08/11/15 23:24:30 k8oNRHMF
>>19
レスありがとうございます。
配置とかレイアウトまで全く一緒じゃなくてもいいです。
圧縮ファイルをうp→展開してサムネイル表示→一枚選んでトップにリンク表示
ここの機能を真似したいです。
21:1
08/11/16 00:11:40 bd9Qfzm9
xamppを使ってローカルで試行錯誤しているのですがまたかう゛ぇにぶつかってしまいましたorz
アップロードの動作自体はできたのですが、日本語のファイルを指定するとファイルの名前を格納させている変数が空っぽの状態になってしまいます。
日本語ファイルに対応させるにはどうしたらいいでしょうか?
//アップロードファイルの条件
$max_file_size="104,857,600";
$permit_ext=array("zip","lzh","rar");
$upload_dir="upfiles/";
$uploaded_file_tmp=$_FILES["upfile"]["tmp_name"];
$uploaded_file_name=$_FILES["upfile"]["name"];
$uploaded_file_size=$_FILES["upfile"]["size"];
$uploaded_file_ext=pathinfo($_FILES["upfile"]["name"],PATHINFO_EXTENSION);
$uploaded_file_pass=$_POST["pass"];
//チェック
if (!is_uploaded_file($uploaded_file_tmp) == true) {
echo "ファイルを選択してください。";
exit;
} elseif(!$uploaded_file_pass) {
echo "削除Passを入力してください。";
exit;
} elseif($max_file_size > $uploaded_file_size) {
echo "100MBを超えるファイルはアップロードできません。";
exit;
} elseif(!in_array($uploaded_file_ext,$permit_ext)) {
echo "ZIP、RAR、LZH形式のファイルを指定してください。";
exit;
}
22:nobodyさん
08/11/16 00:13:01 bd9Qfzm9
連投すみません。
ファイルの名前を格納させている変数が空なだけではなくアップロード自体がされていないみたいですorz
23:nobodyさん
08/11/16 00:30:59
>>20
それだけだとしたら別にDBはいらない
管理がしたいなら使ったほうがいい
24:1
08/11/16 03:49:53 bd9Qfzm9
>>21が分かりづらいかなと思ったんで再度。
//アップロードファイルの条件
$max_file_size="104,857,600";
$permit_ext=array("zip","lzh","rar");
$upload_dir="upfiles/";
$uploaded_file_tmp=$_FILES["upfile"]["tmp_name"];
$uploaded_file_name=$_FILES["upfile"]["name"];
$uploaded_file_size=$_FILES["upfile"]["size"];
$uploaded_file_ext=pathinfo($_FILES["upfile"]["name"],PATHINFO_EXTENSION);
$uploaded_file_pass=$_POST["pass"];
//チェック
if (!is_uploaded_file($uploaded_file_tmp) == true) { ←日本語ファイルを指定したらここでtrueになっちゃうんです。
echo "ファイルを選択してください。";
exit;
} elseif(!$uploaded_file_pass) {
echo "削除Passを入力してください。";
exit;
} elseif($max_file_size > $uploaded_file_size) {
echo "100MBを超えるファイルはアップロードできません。";
exit;
} elseif(!in_array($uploaded_file_ext,$permit_ext)) {
echo "ZIP、RAR、LZH形式のファイルを指定してください。";
exit;
}
25:nobodyさん
08/11/16 10:58:11
>>24
ファイルのアップロードに関して、ファイル名をそのまま使いたい
とかないなら日本語ファイル名とかあんま関係ない。
実態はtmp_nameになってるから。
それを使いたいなら、SJISだからエンコード変換する必要は有る。
ファイルそのものがアップされないって言ってるから
<form>に >>12 で示したenctypeが入ってないんじゃないか?
26:1
08/11/16 11:39:14 bd9Qfzm9
>>25
レスありがとうございます。
<form>のソースですが、
<form action="action.php" method="post" enctype="multipart/form-data">
<p>アップロードするファイルを選択してください。
<input type="file" name="upfile" /></p>
<p>
削除パスワードを入力してください。
<input type="password" name="pass" /></p>
<p><input type="submit" value="実行" /></p>
<p><input type="reset" value="リセット" /></p>
</form>
でenctypeは指定してあります。
>>それを使いたいなら、SJISだからエンコード変換する必要は有る。
これですが、mb_convert_encoding(***,"SJIS")を使っても結果が同じでしたorz
27:1
08/11/16 11:40:59 bd9Qfzm9
>>25
SJISへのエンコードですが、
$_FILES["upfile"]["tmp_name"]と$_FILES["upfile"]["name"]のどちらに使うのが正しいのでしょうか?
tmpが一時的に保存されたファイルでnameの方が指定されたファイル名と認識しているのですが
28:1
08/11/16 13:45:22 bd9Qfzm9
経過報告です。
どうやら日本語がだめなんじゃなくてファイルによってうまくいくときといかないときがあるみたいです・・・
まだ原因がわからないのでいろいろ検証してまた報告します
29:1
08/11/16 15:13:35 bd9Qfzm9
URLリンク(www9.atpages.jp)
どうしても原因がわかりません。
作成したファイルをアップしますのでチェックしていただけないでしょうか?
日本語の書庫ファイルの場合のみうまくいったりいかなかったりします。
うまくいかないときは$_FILES["upfile"]["tmp_name"]がからっぽという状態です
30:nobodyさん
08/11/17 04:15:56
>>29
あぁ、自分で$max_file_sizeを制限してるつもりだろうけど、
そもそもPHPで設定されたサイズ以上はアップできんよ。
phpinfo()でupload_max_filesizeって項目を探してみ。
デフォだと2Mになってるとおもう。
URLリンク(jp.php.net)
これ解除するには.htaccessが使えて、php_valueを設定できる
とかじゃないとダメで、まぁそれができるかどうかはレンサバによる。
31:nobodyさん
08/11/17 12:47:27 zq7HbAGh
>>30
レスありがとうございました。
ご指摘の通りでPHP自体にアップロードできるファイル容量制限があることを知りませんでしたorz
そこを変更したら大丈夫になりました。
32:1
08/11/17 12:51:29 zq7HbAGh
日本語でファイルのアップロード(容量、拡張子、パス制限あり)に加え、
後々の管理のためにMysqlにファイルの名前などの情報を格納する仕様にしようと思っています。
SQLに取得した情報を保存するところまでは成功しているのですが、管理をする上でsqlに必要なフィールドはどんなものがあるでしょうか?
自動付番のID、ファイル名(日本語)、日時、削除passぐらいしか思いつかなくて・・・
あとDBにファイル自体を格納することは可能でしょうか?
初心者なのでお手数をおかけしてすみませんがよろしくお願いします。
33:nobodyさん
08/11/17 13:43:18
少しは自分の頭で考えろ
34:nobodyさん
08/11/17 20:48:02
初心者関係ねーだろそれ
35:nobodyさん
08/11/17 23:18:54
blob
36:nobodyさん
08/11/18 00:54:37
>>32
>SQLに取得した情報を保存するところまでは成功しているのですが、管理をする上でsqlに必要なフィールドはどんなものがあるでしょうか?
>自動付番のID、ファイル名(日本語)、日時、削除passぐらいしか思いつかなくて・・・
とりあえずそれでOK。作ってみて足りなかったらALTERかけて
フィールド増やせば良い。初心者なんだからとりあえず動くもの作ってから悩め。
>あとDBにファイル自体を格納することは可能でしょうか?
できるが、まだそのレベルには達してない。
それより先にやることがいっぱいあるでしょ。
37:nobodyさん
08/11/18 10:07:54
>>36
ありがとうございます。
とりあえず今思いつく限りの機能を順番に加えながら悩んでやってみます(o*。_。)oペコッ
38:nobodyさん
08/11/19 21:18:58
これくらいちゃっちゃかと自分で作れないようでは
コッポラたんがいても気づくことができないから危ないGス