在不使用ajax的情况下使用javascript上载文件

在不使用ajax的情况下使用javascript上载文件,javascript,html,Javascript,Html,我尝试使用输入标记和type='file'上载文件,我想将其保存在我的项目文件夹中。我可以在不使用ajax的情况下借助javascript来实现吗?。。有没有可能 这是我的密码 函数func3(){ var x=document.getElementById(“myFile”); if('x中的“文件”){ 对于(var i=0;i

我尝试使用输入标记和type='file'上载文件,我想将其保存在我的项目文件夹中。我可以在不使用ajax的情况下借助javascript来实现吗?。。有没有可能

这是我的密码

函数func3(){
var x=document.getElementById(“myFile”);
if('x中的“文件”){
对于(var i=0;i

我认为这是不可能的,因为存在安全问题。

对于js中的文件上载,您需要添加两个隐藏字段,一个用于文件类型 和其他文件内容。您需要将文件内容更改为base64 并存储到隐藏的字段中。请参阅下面的代码。然后使用ajax上传base64内容

  <input type="file" id="myFile" multiple size="50" onchange="func3(e)">
  <input type="hidden" id="fld-content" name="fld-content">
  <input type="hidden" id="fld-content-type" name="fld-content-type">
 function func3(e) {
            var files = e.target.files;
            var file = files[0];
            var fileType = file.name;
            fileType = fileType.substring(fileType.lastIndexOf(".") + 1);
            if (files && file) {
                var reader = new FileReader();
                reader.onload = function (readerEvt) {
                    var binaryString = readerEvt.target.result;
                    base64 = btoa(binaryString);
                    $('#fld-content-type').val(fileType);
                    $('#fld-content').val(encodeURIComponent(base64));
                };
                reader.readAsBinaryString(file);
            }
        }

函数3(e){
var files=e.target.files;
var file=files[0];
var fileType=file.name;
fileType=fileType.substring(fileType.lastIndexOf(“.”+1);
if(文件和文件){
var reader=new FileReader();
reader.onload=函数(readerEvt){
var binaryString=readerEvt.target.result;
base64=btoa(二进制字符串);
$('#fld content type').val(文件类型);
$('#fld content').val(encodeURIComponent(base64));
};
reader.readAsBinaryString(文件);
}
}

AJAX是一种获取客户端数据并将其异步发送到服务器的方法,无需将a窗口用作HTTP客户端来显示响应。因此,如果您想上传一个文件而不触发“页面重新加载”,那么您的选项仅限于AJAX或(请不要这样做)使用隐藏的iframe并将表单指向那里。如果您想将上传的文件存储在浏览器中,那么您可以在没有AJAX的情况下使用浏览器数据库(Localstorage等),但这不会将文件上传到您的服务器。

我真的很怀疑是的,有AJAX。使用为任务提供的工具,尝试以“不同”的方式做事情很少有用…你所说的工具是什么意思…它们是什么类型的?好的。。。考虑这个……不需要任何安全问题,只针对一个实现,我们能做到吗?这就是我要问的…我想你们不能,这是不可能的,因为浏览器不允许这样做,因为安全问题。好的。谢谢你的回答。我想用这个我们可以读文件,然后用另一种格式写,然后我们会用它的原始格式保存。。。但是,如果我想直接保存上传的文件的类型,无论它可能是什么(如txt,png,jpg,gif)…我可以这样做的方式,我问??。。。。。。。。告诉我onething上面的代码是否适用于任何格式??不,您不能直接保存文件,您必须将其更改为base64格式,在服务器端,您需要将其转换回文件格式,然后保存。