Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 如何将文件附加到html';文件';使用jquery/js上传的元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何将文件附加到html';文件';使用jquery/js上传的元素?

Javascript 如何将文件附加到html';文件';使用jquery/js上传的元素?,javascript,jquery,html,Javascript,Jquery,Html,以下是我们试图将文件附加到的html元素: <input id="uploaded_file_file_for_upload" class="file optional" type="file" name="uploaded_file[file_for_upload]"> 我们尝试连接以下内容,但未成功: $('#uploaded_file_file_for_upload').attr('src', mainCanvas.toDataURL("image/jpeg")); 问题可

以下是我们试图将文件附加到的html元素:

<input id="uploaded_file_file_for_upload" class="file optional" type="file" name="uploaded_file[file_for_upload]">
我们尝试连接以下内容,但未成功:

$('#uploaded_file_file_for_upload').attr('src', mainCanvas.toDataURL("image/jpeg"));

问题可能是它不是图像元素。删除和附加文件类型的正确方法是什么

简单的回答是你不能。上传文件的唯一方法是发送用户选择的文件,不做任何更改

要准确执行您在此处尝试执行的操作,唯一的方法是使用:

  • 本地应用程序
  • 带有本机插件的混合应用程序
  • 通过浏览器插件(flash、chrome应用程序…)
除非,否则浏览器安全策略将阻止您

两种解决办法可以是:

  • 发送原始文件并在服务器端调整其大小(php库、nodejs…)
  • 或者根据需要调整图像大小,然后通过POST ajax请求将已编辑图像的base64编码图像数据上载到服务器,然后将其写入文件服务器端

的可能副本的可能副本。无法更改为
文件列表
对象。尝试将
FileList
对象转换为数组,使用
.splice()
从数组中删除文件,插入新文件,
POST
包含新文件对象的数组。在客户端调整大小可以降低带宽成本,并提供更好的客户体验。与服务端解决方案相比更难实现。
Remi Becheras
,文本字段是否适合存储base64编码的图像数据以供上传?文本字段似乎适合base64编码的数据,该数据是字符串。是的,将其作为简单字符串发送。它是图像的字符串表示形式。
$('#uploaded_file_file_for_upload').attr('src', mainCanvas.toDataURL("image/jpeg"));