input file経由と同じデータは経由しなくともできるのか

PHPのcURLでpostを利用したファイルの転送は可能です。ただしそれはサーバーサイドの問題です。
クライアントのブラウザからではjsを利用してもtype=fileを利用しないでファイルの転送はできません

たとえばクライアントがtype=fileを利用して送ったファイルをサーバーが受け、それをさらにhttpベースで別のサーバーにpostしたいときはcURLで転送可能です。
また場合によっては307エラーを利用した転送なども可能です
なおjsで送信する場合もクライアント側はあくまで任意にファイルの選択をするという手順を経る必要があります。
それは非同期のXHRでも同様です。

テキストエリアの文字列をサーバーにファイルとして送付

javascript

1<script>2window.addEventListener('DOMContentLoaded', ()=>{3 btn.addEventListener('click',()=>{4 const url="upload.php";5 const body= new FormData();6 7 body.append("upload", new Blob([document.querySelector('[name=body]').value],{"type":"text/plain"}),document.querySelector('[name=filename]').value);8 fetch(url,{method:"post",body}).then(res=>res.text()).then(console.log);9 }); 10});11</script>12<textarea name="body">13test 14</textarea><br>15<input name="filename" value="sample.txt">16<input type="button" id="btn" value="send">

// upload.php

PHP

1<?PHP2print_r($_FILES);

コメントを投稿

0 コメント