Isu dalam menukar fail teks sisi pelayan yang dijana TypeScript/Angular klien
P粉022140576
2023-08-07 15:48:34
<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>
Baiklah, di sini anda membuka fail teks untuk menulis dan kemudian segera menutupnya.
Apa yang anda perlu lakukan sebenarnya ialah menulis kandungan ke dalam pembolehubah data dan kemudian masukkan url sebagai parameter seperti ini:
Saya juga secara peribadi lebih suka input_put_content() daripada fopen/fclose.