以下のコードでどうでしょう?
申し訳ありませんが、環境構築できていないので、全体で一回も試していません。
ファイルをダウンロードするコードはパーミッションを正しく設定しないとエラーになりました。
パーミッションエラーが出た場合は正しく設定してあげてください。
クライアント側からファイルをPOSTデータとして送信する方法は以下のページを参考にしました。
PHP: ファイルをアップロードする
もし上手くいきましたらご一報ください、よろしくお願いします。
php
1クライアント側からのファイルのアップロード1(cURLを利用する方法)
2
3// http://blog.sarabande.jp/post/80779555411より抜粋
4
5$opts = [
6 CURLOPT_RETURNTRANSFER => true,
7 CURLOPT_URL => 'http://localhost:3000/upload.php',
8 CURLOPT_POST => true,
9 CURLOPT_POSTFIELDS => ['userfile' => curl_file_create('test.txt','text/plain','uploaded.txt')],
10 CURLOPT_USERAGENT => 'User-Agent: Mozilla/5.0',
11 CURLOPT_COOKIE => 'foo=bar',
12 CURLOPT_HTTPHEADER => ['Accept-language: ja']
13];
14
15$ch = curl_init();
16curl_setopt_array($ch, $opts);
17$ret = curl_exec($ch);
18curl_close($ch);
19
20var_dump(
21 'success' === json_decode($ret, true)['msg']
22);
php
1
2クライアント側からのファイルのアップロード2(file_get_contentsを利用する方法)
3
4// http://blog.sarabande.jp/post/80779555411より抜粋
5
6$boundary = '--------------------------'.microtime(true);
7$url = 'http://localhost:3000/upload.php';
8$filename = 'test.txt';
9
10$headers = [
11 'Accept-language: ja',
12 'Cookie: hash=12345abcde',
13 'Content-Type: multipart/form-data; boundary='.$boundary
14];
15
16$content = '--'.$boundary."\r\n".
17 'Content-Disposition: form-data; name="userfile"; filename="'.basename($filename).'"'."\r\n".
18 'Content-Type: text/plain'."\r\n\r\n".
19 file_get_contents($filename)."\r\n".
20 '--'.$boundary.'--'."\r\n";
21
22$opts['http'] = [
23 'method' => 'POST',
24 'header' => implode("\r\n", $headers),
25 'content' => $content,
26 'user-agent' => 'Mozilla/5.0'
27];
28
29$context = stream_context_create($opts);
30$ret = file_get_contents($url, false, $context);
31var_dump('success' === json_decode($ret, true)['msg']);
PHP
1サーバー側のファイル受信時の処理(upload.php)
2
3<?php
4
5if (is_uploaded_file($_FILES["uplift"]["tmp_name"])) {
6 if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "folder/" . $_FILES["upfile"]["name"])) {
7 chmod("folder/" . $_FILES["upfile"]["name"], 0644);
8 echo $_FILES["upfile"]["name"] . "をアップロードしました。";
9 } else {
10 echo "ファイルをアップロードできません。";
11 }
12} else {
13 echo "ファイルが選択されていません。";
14}
15
16?>
php
1クライアント側のファイルのダウンロード(download.php)
2
3<?php
4
5$url = "http://XXX.XXX.XXX.XXX/folder/file.txt";
6$data = file_get_contents($url);
7file_put_contents('C:work\file.txt', $data);
8
9echo "ファイルをダウンロードしました。"
10
11?>
html
1クライアント側のファイルのダウンロード(client.html)
2
3<a href="download.php">ダウンロード</a>
4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/11 14:26
2016/02/11 14:43
2016/02/11 15:06
2016/02/13 13:49
2016/02/13 14:56