这是我的第一篇文章,所以请温柔。
我正在尝试简化一些 B2B,但我们的供应商没有提供帮助,因此我正在尝试使用他们的标准 Web 控件和我这边的用户通过浏览器单击来创建一个界面。
远程服务器有一些很好的安全协议,所以 curl 是不可能的。我可以让远程服务器接受我的文件的唯一方法是通过 Web 浏览器使用他们的 cookie 创建界面。这不是一件坏事,因为我希望工作人员在文件发布之前查看它。
当我使用 Fiddler 并通过他们的网站进行上传时,内容长度文件大小为 55344,文件大小为 54920,所以这是正确的......但是当我通过 Java / PHP / jquery 进行上传时,它们都在 99870 左右尺寸。
如果我上传一个文本文件,这工作正常。
如果我上传 PDF 或 Word 文档,文件大小会爆炸并损坏。
我试图通过 PHP 创建发布数据,而 jquery 有一个 tanty 并且不会发送,我已经在 PHP 和 Java 之间编码和解码 base 64 .. 文件大小爆炸
我已经在谷歌上搜索了几天,但运气不佳。为什么会这样?
这是我的 JavaScript 代码:
var boundary = "' . $boundary . '";
var jqxhr = $.ajax({
type: "GET",
url: "' . $filename . '",
context: document.pdf,
global: false,
async:false,
success: function(data) {
return data;
}
}).responseText;
var javabody = "--" + boundary + "\r\n"
+ "Content-Disposition: form-data; name=\"' .$name. '\"; filename=\"' .$filename. '\"\r\n"
+ "Content-Type: application/pdf\r\n\r\n"
+ jqxhr + "\r\n"
+ "--" + boundary + "\r\n"
+ "Content-Disposition: form-data; name=\"attachDocument\"" + "\r\n\r\n"
+ "Attach Docs\r\n"
+ "--" + boundary + "--";
$.ajax({
type: "post",
url: "' . $url . '",
datatype: "html",
contentType: "multipart/form-data; boundary=' . $boundary . '",
cache: "false",
context: document.body,
global: "false",
data: javabody,
crossDomain: true,
xhrFields: {
withCredentials: true
},
processData: false,
async: false,
});
一切正常,“a”文件上升,占位符和边界正确,只是文件大小爆炸并损坏。
任何帮助,将不胜感激
麦克风