Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向输入动态添加文件_Javascript_Php_Jquery_Html_Jquery Html5uploader - Fatal编程技术网

Javascript 向输入动态添加文件

Javascript 向输入动态添加文件,javascript,php,jquery,html,jquery-html5uploader,Javascript,Php,Jquery,Html,Jquery Html5uploader,我正在使用这个插件:在表单中查看演示。我想在用户提交表单时用POST方法发送上传的文件 也许我可以创建一个输入[type=file],将其隐藏,并使用输入中的插件动态添加上传的文件?有可能吗 所以,如果我不能做到这一点,我怎么能上传文件到服务器与此插件,只有当用户点击提交按钮?我知道这个插件已经用AJAX实现了,但我只想在用户点击按钮时上传它们 也许我应该创建一个名为example files的变量,当用户单击submit按钮时,自己使用AJAX发送文件和其他输入数据 大概是这样的: jQuer

我正在使用这个插件:在表单中查看演示。我想在用户提交表单时用POST方法发送上传的文件

也许我可以创建一个输入[type=file],将其隐藏,并使用输入中的插件动态添加上传的文件?有可能吗

所以,如果我不能做到这一点,我怎么能上传文件到服务器与此插件,只有当用户点击提交按钮?我知道这个插件已经用AJAX实现了,但我只想在用户点击按钮时上传它们

也许我应该创建一个名为example files的变量,当用户单击submit按钮时,自己使用AJAX发送文件和其他输入数据

大概是这样的:

jQuery( "#dropbox" ).html5Uploader({
    onClientLoadStart: function( event, file ) {
        files[] = file;
        [...]
    }
});

[...]

jQuery("#button").on("click", function() {
    jQuery.ajax({
        data: files
    });
    [...]
});
由于浏览器的安全性,无法在文件上载程序中选择文件


用户只能在脚本中执行此操作。

出于安全原因,您不能执行此操作。想象一下这些可能性吧。我通过JavaScript在一个隐藏字段中输入一个文件。你按提交。我收到你的文件了。任何文件。很可怕,对吧?

这个脚本已经将文件上传到服务器上了。。您需要的是一种从服务器获取文件名/id并将其附加到隐藏表单的方法。。当有人提交表格时,你就会知道他上传了哪些文件


您可以通过侦听onSuccess事件来执行此操作。

出于安全原因,您不能动态更改file类型的输入字段的值。如果可能的话,恶意用户可以将该值设置为:c:\maliciousfile并损害您的系统

如何使用JavaScript将文件动态添加到表单

1a。我会给你一个额外的奖励——预览图片

如何执行Ajax文件上传

1向窗体动态添加文件 这里要做的是创建一个字段并通过Javascript更改表单值。您可以使用CSS display:none;隐藏输入

据我所知,这只能使用和拖放来完成,而且API是有限的

您可以替换和删除输入中的所有文件,但不能附加或删除单个文件

基本的拖放文件上载如下所示:

jQuery( "#dropbox" ).html5Uploader({
    onClientLoadStart: function( event, file ) {
        files[] = file;
        [...]
    }
});

[...]

jQuery("#button").on("click", function() {
    jQuery.ajax({
        data: files
    });
    [...]
});
const dropZone=document.getElementById'dropZone'; const fileInput=document.getElementById'file-input'; dropzone.addEventListener'dragover',事件=>{ //我们必须防止违约,让drop事件触发 违约事件; }; dropzone.addEventListener'drop',事件=>{ 违约事件; //拖放文件位于event.dataTransfer中 让files=event.dataTransfer.files; fileInput.files=文件; log`添加了${files.length}个文件'; }; .上传{ 边框:1px实心eee; 边界半径:10px; 填充:20px } .隐藏{ 不透明度:0.5; } 在此处放置图像
是的,我知道,但它使用名称和姿势参数动态上传文件,而不是当用户点击提交按钮时。我错了吗?我使用的是PHP,所以我必须使用全局$\u POST变量访问文件数据。假设您的postrl是POST.PHP,当图像发布到该url时,您将其名称和文件夹添加到数据库并返回其idor ID。。。现在,在上传表单时,需要使用js函数并监听onSuccess事件。。在这种情况下,您将获得上传图像的id,而不是通过javascript/jquery将该id添加到隐藏的输入字段中。。当表格提交后,您会收到tham images ID,您能在主消息中查看我的更改吗?