Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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_Html_Input_Binaryfiles - Fatal编程技术网

Javascript 用二进制响应填充输入类型标记

Javascript 用二进制响应填充输入类型标记,javascript,html,input,binaryfiles,Javascript,Html,Input,Binaryfiles,我有一个PHP脚本,其中来自API的响应是一个二进制文件“resumeBinary”是来自响应的键。所以,我所做的是将它编码到base64,以便在构建的JSON响应数据中轻松访问它的密钥。以下是使用AJAX获取响应后控制台上的响应: 到目前为止,我所做的是使用atob()函数将ResumeBarbinary转换为其原始文本字符串。下面是它的外观,现在将其转换为其原始二进制文本字符串: 我的问题是,是否可以将文件名和二进制值附加到HTML输入文件标记中?这是为了符合我客户的要求 用户将授权该应

我有一个PHP脚本,其中来自API的响应是一个二进制文件“resumeBinary”是来自响应的键。所以,我所做的是将它编码到base64,以便在构建的JSON响应数据中轻松访问它的密钥。以下是使用AJAX获取响应后控制台上的响应:

到目前为止,我所做的是使用atob()函数将ResumeBarbinary转换为其原始文本字符串。下面是它的外观,现在将其转换为其原始二进制文本字符串:

我的问题是,是否可以将文件名和二进制值附加到HTML输入文件标记中?这是为了符合我客户的要求

用户将授权该应用程序,然后该应用程序将获取用户的简历,在收到API的响应后,我将把它与其他候选人的信息一起附加到输入文件类型中。之后,他们可以更改简历文件,如果他们愿意,或者他们可以提交表单,我会将其发布到另一个API


当您以文本形式收到此响应时,已经太晚了,二进制数据已损坏,您将无法检索它。
你需要这样做。既然你没有说明你是如何提出这个要求的,我们在这里帮不了你多少忙

然后,您将能够将其中任何一个转换为文件对象,您可以在数据传输中传递该对象,并将结果文件列表抓取到输入中,如我的示例所示

然而,像这样设置文件仍然是一个难题,它在Safari这样的浏览器中仍然不起作用,在IE中也永远不会起作用

无论您认为需要它做什么,我相信有更好的方法可以做到这一点,例如,如果您的目标是将此数据发布到您的服务器,那么只需使用a使请求与您的文件输入相同

const data=新的Uint8Array(128);
加密。getRandomValues(数据);//一些噪声数据
const dT=新数据传输();
添加(新文件([data],“File.ext”);
document.querySelector(“input”).files=dT.files;
const the_form=document.querySelector(“表单”);
const formdata_from_DOM=新formdata(_表单);
新的响应(来自DOM.text()的formdata)
.then(txt=>console.log(“来自DOM:\n”,txt));
const formdata_from_JS=new formdata();
formdata_from_JS.append(“文件”,新Blob([data]),“file.ext”);
新的响应(formdata_from_JS).text()
.then(txt=>console.log(“来自JS:\n”,txt))


我不明白这个问题。你为什么要填写表格?这些类型的输入允许用户从设备存储器中选择文件,然后将其上载到服务器。您是否正在尝试从一个API向另一个API发送内容?是的,您是对的,在用户代表他们授权一个API后,它将调用该API以获取其简历,然后作为他们步骤的一部分,我需要将其附加到输入标记以传递并发布到另一个API。我将更新我的问题。@Stanislas,我需要按照我的客户和API提供商告诉我的步骤流程进行操作。如果用户愿意,他们可以重新加载他们的文件,只是如果他们授权应用程序,它会预先填充这些数据。这可能吗?我不确定这是否可能(但我不这么认为)。但是,如果数据要从一个API传输到另一个API(用户看不到或无法与之交互),那么我不理解为什么数据首先要发送到客户端。一个API不能调用另一个吗?如果数据必须通过客户端,那么我会考虑用A代替。@斯坦尼斯拉:是的,我同意你的意见,这是一份求职申请表。如果候选人可以使用他们现有的SEEK个人资料,然后如果他们的个人资料中有简历文件或简历PDF,API将获取该文件,然后将其附加到申请表中,但如果他们愿意,也可以更改该文件。