Rumah  >  Soal Jawab  >  teks badan

Isu dalam menukar fail teks sisi pelayan yang dijana TypeScript/Angular klien

<p>"Masalahnya ialah saya cuba menulis kandungan teks ke fail sebelah pelayan melalui permintaan yang dimulakan oleh penyemak imbas Klien. NOTA: Ini sudah agak lama sejak saya mengusahakan TypeScript/PHP /Pelayan, jadi Tolong jangan menganggap saya tahu segala-galanya secara lalai :) Saya menyesuaikannya daripada kod saya sendiri: /issue/11240996/Output JavaScript ke File -server<br /><br /> satu menggunakan PHP Kod untuk mencipta fail "h.txt" pada bahagian pelayan memang mencipta fail kosong "h.txt", tetapi kandungannya "456" tidak pernah ditulis: Saya tidak pernah mendapat mesej ralat tentang sebabnya."456"是文件的内容,</p><p><br /></p> <h2>服务器端</h2> <pre class="brush:php;toolbar:false;">//Kod PHP: (Sedikit rumit, tetapi ia sepatutnya berfungsi) //h.txt dicipta, tetapi kandungannya tidak pernah ditulis: masalah baca sahaja?? Saya tidak dapat mencari cara untuk melihat sama ada //fail itu dibaca sahaja atau tidak) //Kod php terletak pada Pelayan <?php fungsi getData() { $myFile = fopen("h.txt", "w"); fclose($myFile); tidur(5); //kembali "pautan ke h.txt"; } getData(); // Cuba untuk mengembalikan nilai yang berbeza untuk URL di bawah: // "h.txt" dicipta, tetapi kandungannya "456" tidak pernah // ditulis kembalikan "URL ke h.txt"; ?></pra> <pre class="brush:php;toolbar:false;">//Di sebelah Klien saya mempunyai kod berikut: //Klien ditulis dalam Angular, dan fungsi yang mencetuskan pertukaran data dengan pelayan testWriteToServerFile() { let data: string = "456";// ini adalah data anda yang ingin anda hantar ke pelayan //seterusnya anda akan memulakan XMLHTTPRequest seperti berikut (mungkin lebih maju): var url = url ke kod PHP sebelah pelayan yang akan menerima data. var http = XMLHttpRequest(); http.open("POST", url, true); //Hantar maklumat pengepala yang betul bersama-sama dengan permintaan http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.setRequestHeader("Content-length", data.length.toString()); http.setRequestHeader("Sambungan", "tutup"); http.onreadystatechange = function() {//Panggil fungsi apabila keadaan berubah. if(http.readyState == 4 && http.status == 200) { alert(http.responseText);//semak sama ada data berjaya diterima. } } http.send(data); }</pre> <p>(我试图包括适当的链接到服务器等,但这篇文章被归类为垃圾邮件 /?)<gt;<gt;上的h.txt对客户端是只读的问题吗?解决方案是什么?<br /><br />我希望能够将文本写入服务器上<gt.txt< <br / ></p>
P粉022140576P粉022140576414 hari yang lalu429

membalas semua(1)saya akan balas

  • P粉135799949

    P粉1357999492023-08-08 13:53:33

    Baiklah, di sini anda membuka fail teks untuk menulis dan kemudian segera menutupnya.

    function getData() {
      $myFile = fopen("h.txt", "w");
      fclose($myFile);
      sleep(5);

    Apa yang anda perlu lakukan sebenarnya ialah menulis kandungan ke dalam pembolehubah data dan kemudian masukkan url sebagai parameter seperti ini:

    function getData() {
    $myFile = fopen("h.txt", "w");
    fwrite($myFile, filter_input(INPUT_POST, 'data', FILTER_SANITIZE_SPECIAL_CHARS));
    fclose($myFile);

    Saya juga secara peribadi lebih suka input_put_content() daripada fopen/fclose.

    balas
    0
  • Batalbalas