え?それは何故かって?
実は自分用に、ファイルサーバーを立てたのですが、
ファイルのアップロードとダウンロードが意外と簡単で感動したので、
皆さんにも同じ感動を味わっていただきたいと思いまして、今回はこの題材です。
まずはサンプルコード。
if (move_uploaded_file($_FILES["filedata"]["tmp_name"],
mb_convert_encoding("ファイルの移動先","SJIS", "EUC-JP")))
{
echo "ファイルをアップロードしました。
";
} else {
echo "ファイルをアップロードできません。
";
}
これだけです。もっと面倒なことを勝手に想像していたのに簡単です。
第一パラメータ($_FILES["filedata"]["tmp_name"])はサーバー上にとりあえず保存されファイル名です。
第二パラメータはサーバー上に保存するパスになります。
// ダウンロード用のHTTPヘッダ送信 */
ini_set("zlib.output_compression", "0");
header("Content-Disposition: inline; filename=\"".basename("ファイル名")."\"");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
//ファイルサイズでダウンロード方法を変更する
$handle = fopen("ファイル名", 'rb');
while (!feof($handle)){
echo fread($handle, 4096);
ob_flush();
flush();
}
fclose($handle);
アップロードよりも行数がありますが簡単です。
HTTPヘッダはほぼ固定のテンプレートとして送信して、
そのあとにファイルのを分割(例では4096バイト)してダウンロードしてくという感じです。
すごく簡単なんで、ぜひ一度試してみてください!