回答編集履歴

3

chousei

2024/03/26 04:47

投稿

yambejp
yambejp

スコア114933

test CHANGED
@@ -27,3 +27,9 @@
27
27
  <input name="filename" value="sample.txt">
28
28
  <input type="button" id="btn" value="send">
29
29
  ```
30
+ // upload.php
31
+ ```PHP
32
+ <?PHP
33
+ print_r($_FILES);
34
+ ```
35
+

2

説明

2024/03/26 04:44

投稿

yambejp
yambejp

スコア114933

test CHANGED
@@ -5,3 +5,25 @@
5
5
  また場合によっては307エラーを利用した転送なども可能です
6
6
  なおjsで送信する場合もクライアント側はあくまで任意にファイルの選択をするという手順を経る必要があります。
7
7
  それは非同期のXHRでも同様です。
8
+
9
+ # 参考
10
+ テキストエリアの文字列をサーバーにファイルとして送付
11
+
12
+ ```javascript
13
+ <script>
14
+ window.addEventListener('DOMContentLoaded', ()=>{
15
+ btn.addEventListener('click',()=>{
16
+ const url="upload.php";
17
+ const body= new FormData();
18
+
19
+ body.append("upload", new Blob([document.querySelector('[name=body]').value],{"type":"text/plain"}),document.querySelector('[name=filename]').value);
20
+ fetch(url,{method:"post",body}).then(res=>res.text()).then(console.log);
21
+ });
22
+ });
23
+ </script>
24
+ <textarea name="body">
25
+ test
26
+ </textarea><br>
27
+ <input name="filename" value="sample.txt">
28
+ <input type="button" id="btn" value="send">
29
+ ```

1

追記

2024/03/26 02:55

投稿

yambejp
yambejp

スコア114933

test CHANGED
@@ -1,2 +1,7 @@
1
- PHPのcURLでpostを利用したファイルの転送は可能です。
1
+ PHPのcURLでpostを利用したファイルの転送は可能です。ただしそれはサーバーサイドの問題です。
2
2
  クライアントのブラウザからではjsを利用してもtype=fileを利用しないでファイルの転送はできません
3
+
4
+ たとえばクライアントがtype=fileを利用して送ったファイルをサーバーが受け、それをさらにhttpベースで別のサーバーにpostしたいときはcURLで転送可能です。
5
+ また場合によっては307エラーを利用した転送なども可能です
6
+ なおjsで送信する場合もクライアント側はあくまで任意にファイルの選択をするという手順を経る必要があります。
7
+ それは非同期のXHRでも同様です。