如何使用javascript将html保存到服务器上文件夹中的.html文件

如何使用javascript将html保存到服务器上文件夹中的.html文件,javascript,html,Javascript,Html,我正在为我的网站编写一个工具,就像一个管理面板,在那里你可以向页面添加一些元素。我使用javascript添加元素,然后如果按下save按钮,所有内容都会像“smth.html”一样自动保存到js脚本所在的文件夹中 我花了很多时间为它搜索正确的脚本,但没有任何效果 你能给我一些解决这个问题的办法吗?是否可以使用下面的代码执行此操作?下面的代码有助于从网页下载,但我需要用脚本将其保存到服务器 谢谢你的帮助 有一个工作代码只需要名为file_saver.PHP的服务器端PHP文件,您将在其中接收

我正在为我的网站编写一个工具,就像一个管理面板,在那里你可以向页面添加一些元素。我使用javascript添加元素,然后如果按下save按钮,所有内容都会像“smth.html”一样自动保存到js脚本所在的文件夹中

我花了很多时间为它搜索正确的脚本,但没有任何效果

你能给我一些解决这个问题的办法吗?是否可以使用下面的代码执行此操作?下面的代码有助于从网页下载,但我需要用脚本将其保存到服务器

谢谢你的帮助



有一个工作代码只需要名为
file_saver.PHP的服务器端
PHP文件
,您将在其中接收
POST数据
(innerHTML内容编码为base64)。您可以使用以下代码:
$html=base64_decode(urldecode($_POST['innerHTML']);
$filename=trim($_POST['filename']);
文件内容($filename,$html)

另外,不要忘记更改要在服务器上写入的文件夹规则:

chmod 777/var/www/html
函数saveHtml(){
让html=document.documentElement;
下载(“saved.html”,html);
}
函数下载(文件名、contentElement){
让fileSaverPath=“./file_saver.php”;
var xhr=new XMLHttpRequest();
open(“POST”,fileSaverPath,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xhr.onreadystatechange=函数(){
if(this.readyState==XMLHttpRequest.DONE&&this.status==200){
window.alert(“文件已保存!”);
}
}
让encodedHtml=contentElement.innerHTML.toString();
send(“filename=“+filename+”&innerHTML=“+btoa(unescape(encodeURIComponent(encodedHtml))));
//document.documentElement.innerHTML=encodedHtml;
}


您想将文件保存到服务器还是直接下载文件?这是您在代码中使用的正确脚本吗?如果是,您能否确认此“下载”功能与示例中的功能不同。在另一个“下载”功能中有“下载”功能。请先确认一下。@AdnNear您好!我正试图保存到服务器中,因为我的站点将把这些数据显示=)@sadstantaokey我正在编写一个代码,我将把它作为一个答案添加到帖子中给我一点时间@AdnaneAr我把功能搞错了,但它会保存到计算机上。非常感谢您的帮助,我正在等待代码片段由于某些原因无法正常工作,但是代码在所有浏览器上都正常工作!非常感谢你!这就是我一直在寻找的。我得到了一个DOMEException:无法在“窗口”上执行“btoa”:要编码的字符串包含拉丁1范围之外的字符。在下载时()在保存时()在HTMLInputElement.onclick()我应该把所有文件放在一起,对吗?那是因为你使用的是非拉丁语范围的语言是俄语还是其他语言?

function saveHtml() {
    var html = document.querySelector("html").innerHTML;

    download("saved.html", html);
}


function download(filename, text) {
        var element = document.createElement('a');
        element.setAttribute('href', 'data:text/plain;charset=utf-8,' +
            encodeURIComponent(text));
        element.setAttribute('download', filename);

        element.style.display = 'none';
        document.body.appendChild(element);

        element.click();

        document.body.removeChild(element);
    }