相关疑难解决方法(0)

fetch 发送 [object Object] 而不是 File 对象

我正在使用Expo及其ImagePicker从图库中抓取图像。它同时返回uribase64

现在我想在multipart/form-data请求中上传图像。

问题是服务器只File在下面的代码发送时才接受[object Object]

请求的图像

const formData = new FormData();

const data = {
  jwt,
};

formData.append('message', JSON.stringify(data));

formData.append('avatar', {
  uri: avatar,
  type: 'image/png',
  name: 'avatar.png'
});

fetch(url, {
  method: 'POST',
  body: formData,
  headers: {
    Accept: 'application/json',
  },
})
Run Code Online (Sandbox Code Playgroud)

由于我使用的是 Expo,因此我仅限于它支持的库。此外,添加Content-Type标头根本不起作用,服务器甚至无法识别该消息。

react-native

5
推荐指数
1
解决办法
500
查看次数

将画布图像上传到S3服务器

有人可以告诉我如何使用AWS JavaScript将画布图像上传到S3服务器吗?

我在使用JavaScript SDK在Amazon S3服务器上上传图像时有点麻烦,需要实现以下功能.

- >在HTML5画布上创建图像并在JavaScript中调整图像大小.

- >然后将图像上传到Amazon S3服务器.

但问题是:

*)在将图像上传到S3服务器时,它将在S3上而不是图像上传图像像素信息.

因此,在S3浏览器预览中,它使用以下代码显示图像流而不是图像.

此外,AWS Javascript支持Body,格式如下Buffer,Typed Array,Blob,String,ReadableStream.

以下是代码:

HTML代码

<canvas id="myCanvas" width="800" height="800" style="background-color: greenyellow;">Your browser doesn't support html5! Please download the latest version.
</canvas>
<input type="button" id="upload-button" value="Upload to S3" />

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.0.4.min.js"></script>



<script type="text/javascript">
        AWS.config.update({ accessKeyId: 'ACCESSKEY', secretAccessKey: 'SECRETKEY' });
        AWS.config.region = 'ap-southeast-1';

         $(function () {

         $("#upload-button").click(OnUpload);    

         });

         function OnUpload(){

            var canvas = document.getElementById("myCanvas");
            var ctx = canvas.getContext("2d");

            var img = new Image();
            img.src = 'Images/IMG_0001.JPG';

            img.onload = function …
Run Code Online (Sandbox Code Playgroud)

javascript upload amazon html5-canvas

4
推荐指数
1
解决办法
2753
查看次数

将数据URI写入Firefox扩展中的文件

我正在开发一个Firefox插件.我需要将一堆数据URI图像保存到磁盘.我该如何处理?

我浏览过MDN上的文件I/O片段,但这些片段对我没什么帮助.

有异步和同步方法.我想使用异步方法,但如何使用异步方法编写二进制文件

Components.utils.import("resource://gre/modules/NetUtil.jsm");
Components.utils.import("resource://gre/modules/FileUtils.jsm");

// file is nsIFile
var file = FileUtils.getFile("Desk", ["test.png"]);

// You can also optionally pass a flags parameter here. It defaults to
// FileUtils.MODE_WRONLY | FileUtils.MODE_CREATE | FileUtils.MODE_TRUNCATE;
var ostream = FileUtils.openSafeFileOutputStream(file);

//base64 image that needs to be saved 
image ="iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";

// How can I create an inputstream from the image data URI?
var inputstream = createInputstream(image);

// The last argument (the callback) is optional.
NetUtil.asyncCopy(inputstream , ostream, function(status) {
  if (!Components.isSuccessCode(status)) { …
Run Code Online (Sandbox Code Playgroud)

javascript firefox firefox-addon

4
推荐指数
1
解决办法
1114
查看次数

使用JSZip显示来自本地zip的图像

我有一个带有一堆文件夹的zip文件,其中包含一个或多个我要渲染到DOM的png文件。

zip.loadAsync(file) .then(function(zip) {
  zip.file('textfile.txt')
   .async("string")
   .then(function (content) { console.log(content); });

}, function (e) {
     console.log("Error reading " + file.name + " : " + e.message); });
Run Code Online (Sandbox Code Playgroud)

我可以读取文本文件,但是从图像文件中获取二进制数据时,我会遇到麻烦。

我的想法是,我应该使用URL.createObjectURL(blob)创建对文件的引用,然后<img id="output" src="blob:null/341e9aeb-a794-4033-87f5-e8d075e9868a">为zip中的每个图像进行渲染。

如何从zip中获取图像?

谢谢!

javascript blob jszip

3
推荐指数
1
解决办法
1887
查看次数

角度图片上传

我试图用ngx-image-cropper我的应用程序上传图像,但我无法保存裁剪的图像.例如,如果我尝试保存主文件(通过该文件加载的文件input type="file"),一切正常.在这种情况下,文件发送方式如下:

{name: "300_3.jpg", 
lastModified: 1510510128437, 
lastModifiedDate: Sun Nov 12 2017 20:08:48 GMT+0200 (GTB Standard Time), webkitRelativePath: "", 
size: 81972, …}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试上传图像的裁剪版本,则文件如下所示:

data:image/png;base64,iVBORw0KGgoAAAANSU............
Run Code Online (Sandbox Code Playgroud)

而服务器的响应是这样的:

{error: "Bad Request",
exception:"org.springframework.web.multipart.support.MissingServletRequestPartException",
message: "Required request part 'file' is not present",
path: "/api/myEndPoint/",
status: 400,
timestamp: 1518424822285}
Run Code Online (Sandbox Code Playgroud)

所以基本上我需要像第一种情况一样发送一个abject,但我所拥有的只是一个base64项目.

这里也是HTML代码,如果它有帮助:

<image-cropper
                    [imageChangedEvent]="imageChangedEvent"
                    [maintainAspectRatio]="true"
                    [aspectRatio]="4 / 4"
                    [resizeToWidth]="250"
                    format="png"
                    (imageCropped)="imageCropped($event)"
                    (imageLoaded)="imageLoaded()"
                    (loadImageFailed)="loadImageFailed()"
                    *ngIf="isUploadedFile">
                </image-cropper>
Run Code Online (Sandbox Code Playgroud)

有人可以建议我如何上传裁剪版本而不是我上传的初始文件?或者这是需要在服务器上修复的东西,所以它可以接受我发送的文件?谢谢!

file-upload angular

3
推荐指数
1
解决办法
930
查看次数

如何输出HTML5画布作为图像?

我已经查看了本教程,了解如何在HTML5中使用canvas来创建剪贴蒙版. http://www.benbarnett.net/2011/06/02/using-html5-canvas-for-image-masks/

我现在的问题是可以将画布保存为图像(包括蒙版效果)吗?

谢谢

javascript html5

1
推荐指数
1
解决办法
7988
查看次数