電子書籍の厳選無料作品が豊富!

pdfファイルの管理システムを作っています。

ファイルの置き場をきめて、ファイル名を任意に置き換え、
ファイルの情報だけDBに登録したいのですが、簡単にサンプルphpスクリプトを書いてもらえませんか?

A 回答 (4件)

まずデータベースをつくります、仮にmydb


次に管理用テーブルをつくります
create table t_pdf_manage(
id int not null auto_increment primary key
,name varchar(20) unique key
,size int
,upload_time datetime
,modify_time datetime
,flg tinyint default 1
);

以下、サンプルプログラム
<form enctype="multipart/form-data" method="post">
<input type="file" name="myfile" size="30">
<input type="submit" value="アップロード">
<?PHP
$uploads_dir = '/uploads';
$link = mysql_connect('localhost', 'username', 'password');
mysql_select_db("mydb");
if(isset($_FILES["myfile"])
and $_FILES["myfile"]["type"]="application/pdf"
and $_FILES["myfile"]["error"] == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["myfile"]["tmp_name"];
$name = mysql_real_escape_string($_FILES["myfile"]["name"]);
$size = $_FILES["myfile"]["size"];
$sql ="insert into t_pdf_manage(name,size,upload_time,modify_time,flg)";
$sql.=" values('$name',$size,now(),now(),1)";
$sql.=" on duplicate key update size=$size,modify_time=now(),flg=1";
$res=mysql_query($sql);
$sql ="select id from t_pdf_manage where name='$name'";
$res=mysql_query($sql);
$row=mysql_fetch_row($res);
$up_name=$row[0];
move_uploaded_file($tmp_name, "$uploads_dir/$up_name");
}
if(isset($_POST["del"]) and is_array($_POST["del"])){
$sql ="update t_pdf_manage set flg=0 where id in(";
$flg=true;
foreach($_POST["del"] as $val){
if($flg){ $flg=false;}else{$sql.=",";}
$sql.="'".mysql_real_escape_string($val)."'";
}
$sql.=")";
$res=mysql_query($sql);
}

$sql ="select id,name,size,upload_time,modify_time from t_pdf_manage where flg=1";
$res=mysql_query($sql);
print "<table border=1>\n";
print "<tr>\n";
print "<th>名前</th>\n";
print "<th>サイズ</th>\n";
print "<th>アップロード</th>\n";
print "<th>更新</th>\n";
print "<th>削除</th>\n";
print "</tr>\n";
while($row=mysql_fetch_array($res,MYSQL_ASSOC)){
print "<tr>\n";
print "<td>".htmlspecialchars($row["name"])."</td>\n";
print "<td>".$row["size"]."</td>\n";
print "<td>".$row["upload_time"]."</td>\n";
print "<td>".$row["modify_time"]."</td>\n";
print "<td><input type=\"checkbox\" name=\"del[]\" value=\"".$row["id"]."\"></td>\n";
print "</tr>\n";
}
print "</table>\n";
mysql_close($link);
?>

<input type="submit" value="削除">
</form>
    • good
    • 0
この回答へのお礼

yambejp さん、ありがとうございます。

作っていただいたものでじっくり勉強して、身に付けられるように頑張りマス!

また、教えてください。

お礼日時:2012/04/10 11:10

>$uploads_dir = '/uploads';はどこかに作らないとダメですよね?



この例だとルートに/uploads を作った前提ですね
これは設定次第なので公開ディレクトリにしてもいいし、
非公開でプログラムから参照するのでもいいと思います
    • good
    • 0
この回答へのお礼

yambejpさん、いつもありがとうございます。

今度は必要なPDFファイル検索してを表示できるようにしようと思います。キーワードで検索したいんですが、ファイルのアップロード時にタグをつけるにはどうすればできますか?

よろしくお願いします。

お礼日時:2012/04/16 11:01

修正



×and $_FILES["myfile"]["type"]="application/pdf"

○and $_FILES["myfile"]["type"]=="application/pdf"
    • good
    • 0
この回答へのお礼

yambejpさん、ありがとうございます。

一つ質問ですが、$uploads_dir = '/uploads';はどこかに作らないとダメですよね?

お礼日時:2012/04/13 16:27

ファイルのアップロードはinput type="file"でよいのでしょうか?


ファイル名が競合するときは上書きでよいのでしょうか?
不要になったファイルは消すのでしょうか?
それともファイルは消さずにファイル情報だけ消すのでしょうか?

この回答への補足

yambejpさん、ありがとうございます。

ファイルのアップロードはinput type="file"です。
ファイル名が競合するときは上書きでいいです。
不要になったファイルは消さずにファイル情報だけ消すようにしたいです。

よろしくお願いします。

補足日時:2012/04/09 11:53
    • good
    • 0
この回答へのお礼

yambejpさん、ありがとうございます。

ファイルのアップロードはinput type="file"です。
ファイル名が競合するときは上書きでいいです。
不要になったファイルは消さずにファイル情報だけ消すようにしたいです。

よろしくお願いします。

お礼日時:2012/04/09 14:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す