我正在尝试使用 Zendesk API 将文件作为支持票的附件上传。我能够成功上传本地文件,但有时我需要从其他工单中复制附件。
现在,我使用基本的 HTML 输入 type="file" 来允许用户从他们的本地机器中选择一个文件。有没有一种简单的方法可以让我从提供的 Web URL 中以完全相同的格式获取文件?
我用文本输入替换实际输入没有问题,我只是不知道如何实际处理 URL 上的文件以获取我需要的格式。
谢谢!
我曾尝试在 XMLHttpRequest 函数上使用 fetch() 和 FileReader,但我不知道我究竟需要做什么来处理从这些函数返回给我的内容。
<body>
<label for="data">Select file:</label>
<input type="file" name="data[]" id="data" multiple>
<button type="button" onclick="uploadfile()">Upload file now...</button>
</br></br>
<label>Token value:</label>
<input type="text" id='token_value_from_upload' style="width: 220px;">
<script>
function uploadfile() {
//retrieve the uploaded file
var file = data.files[0];
console.log(file.type);
$.ajax({
url: "https://instance.zendesk.com/api/v2/uploads.json?filename=" + file.name,
type: 'POST',
data: file,
dataType: 'json',
processData: false,
contentType: 'application/binary',
headers: {
"Authorization": TOKEN
},
success: function(response) {
console.log(response);
document.getElementById('token_value_from_upload').value = response.upload.token;
}
});
}
</script>
</body>
uploadfile 函数应该获取文件的 Web URL,将文件上传到 Zendesk,并将返回的令牌放入“token_value_from_upload”框中。