标签: form-data

在 FormData 中发送整数

当我向后端发送一个整数时,我将它作为字符串接收,我不知道为什么?

var formdata = new FormData();

for (var i = 0; i < scope.user.values.length; i++) {
    formdata.append('values[]', scope.user.values[i]);
}
Run Code Online (Sandbox Code Playgroud)

我以字符串形式接收值,而它们应该是整数

javascript jquery form-data angularjs

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

如何将空数组附加到 FormData 对象?

我有以下问题:

一个 html 表单,在 FormData 上使用 N 个复选框,通过 ajax 发送请求及其信息。在 PHP 上,$_POST['teste'] 变量不存在...

<form id="teste_form">
    <input type="checkbox" name="teste[]">
    <input type="checkbox" name="teste[]">
    <input type="checkbox" name="teste[]">
    <input type="checkbox" name="teste[]">...
</form>

<script>
    var form_data_obj = new FormData( document.getElementById('teste_form') );
    $.ajax({
        ...
        data: form_data_obj
        ...
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我知道我可以在 PHP 上使用“if(isset(...))”,但我真的不喜欢这个解决方案。对我来说,最好的解决方案是从 FormData 对象向 PHP 发送一个空数组。

Obs:我尝试过类似的方法:

  • form_data_obj.append('teste[]',未定义)。
  • form_data_obj.append('teste[]', 0).

但没有成功... PHP 上的结果分别是: ["undefined"], ["0"]

我想在 PHP 中获取 $_POST ['test'] = []

那可能吗?

javascript php ajax form-data

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

将图像上传到Web Api 2使用角度5

我看了几个问题和答案,但无法解决我的问题.我的代码如下:

HTML

 <input type="file" id="file" accept="image/*" name="File" (change)="handleFileInput($event.target.files)">
 <button type="button" mat-raised-button color="primary" (click)="uploadFileToActivity()">Upload</button>
Run Code Online (Sandbox Code Playgroud)

零件

  handleFileInput(files: FileList) {
    this.fileToUpload = files.item(0);
  }

  uploadFileToActivity() {

    this._dishAddService.postFile(this.fileToUpload).subscribe(data => {

      }, error => {
        console.log(error);
      });
  }
Run Code Online (Sandbox Code Playgroud)

服务

 postFile(fileToUpload: File): Observable<boolean> {
    const formData: FormData = new FormData();
    formData.append('fileKey', fileToUpload, fileToUpload.name);
    let headers = new Headers({ 'Content-Type': 'application/json' });    
    headers.append('Content-Type', 'multipart/form-data');

    let options = new RequestOptions({ headers: headers, method: 'post' });
    return this.http.post(this.httpRequestUrl + 'api/dish/UploadDishImage', formData, options)
      .map(
        (response => response.json()))
      .catch(CommonFunctionService.handleError);
  }
Run Code Online (Sandbox Code Playgroud)

API …

form-data asp.net-web-api2 angular

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

如何使用 axios 补丁请求发送 FormData?

我想部分更新一组数据和一个图像文件。我的图像已更新,但其他数据未更新。这是我的代码示例:

    updateUsersData() {
    const { gender, phone, address, cityId, image, signature } = this.state;
    const fd = new FormData();
    fd.append('image', image, image.name);
    fd.append('gender', gender);
    fd.append('phone', phone);
    fd.append('address', address);
    fd.append('cityId', cityId);
    fd.append('signature', signature);
    fd.append('_method', 'PATCH');
    API.patch(`users/${this.props.id}`, 
        fd
        )
        .then(res => {

        })
        .catch(err => console.log(err))
}
Run Code Online (Sandbox Code Playgroud)

multipartform-data form-data reactjs axios

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

如何将表单数据添加到 Laravel Echo 请求?

我正在尝试使用 Laravel Echo 请求发送一些数据

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'somekey',
    wsHost: '127.0.0.1',
    wsPort: 6001,
    encrypted: false,
    disableStats: true,
    forceTLS: false,
    authEndpoint: 'http://127.0.0.1:8000/broadcasting/auth',

    'form-data': {          // I tried data, dataForm, dataform
        someData: '123',    // this doesn't seem to work                
    },                  
});
Run Code Online (Sandbox Code Playgroud)

我已经看到如何向请求添加自定义标头

auth: {
    headers: {
          token: '123'
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法以类似的方式添加表单数据?

编辑

当我在 DevTools 中检查网络请求时,我可以看到formDataEcho 向服务器发送了两个属性。所以我认为必须有一种方法可以将附加属性附加到现有formData对象中

javascript multipartform-data form-data laravel-echo

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

Redux 使用 jest、nock、axios 和 jsdom 测试多部分/表单数据

我正在使用 jest+nock+jsdom 模块来测试我的 React\Redux 应用程序。我需要测试这个异步操作函数:

export function updateUserPhoto (file, token) {
  const data = new FormData()
  data.append('file', file)

  return dispatch => {
    dispatch(userPutPhotoRequest())
    return axios({
      method: 'PUT',
      headers: {
        'x-access-token': token
      },
      data: data,
      url: API_URL + '/user/photo'
    })
      .then(res => dispatch(userPutPhotoSuccess(res.data)))
      .catch(err => dispatch(userPutPhotoFilure(err)))
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我使用 jsdom 向测试提供 FormData 和 File 对象:

const {JSDOM} = require('jsdom')

const jsdom = (new JSDOM(''))
global.window = jsdom.window
global.document = jsdom.window.document
global.FormData = jsdom.window.FormData
const File = jsdom.window.File
global.File = jsdom.window.File
Run Code Online (Sandbox Code Playgroud)

这是测试“上传照片”功能的方法: …

form-data reactjs jestjs redux axios

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

具有自定义属性的文件对象

我想使用自定义文件属性将文件存储在服务器上。在客户端即时添加属性:

let file = new File([blob], 'flower.jpg')
file.custom = "another properties"
Run Code Online (Sandbox Code Playgroud)

这给了我

custom:"another properties"
lastModified:1524742832101
lastModifiedDate:Thu Apr 26 2018 13:40:32 GMT+0200 (W. Europe Daylight Time {}
name:"flower.jpg"
size:845941
type:"image/jpeg"
webkitRelativePath:""
Run Code Online (Sandbox Code Playgroud)

当我将此文件发送到我的节点服务器时,自定义属性被删除。我使用 formData 和 multer 进行文件上传。

fieldname: 'images',
originalname: 'flower.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: 'uploads/',
size: 845941
Run Code Online (Sandbox Code Playgroud)

有没有办法存储包含自定义属性的文件?

file form-data node.js reactjs multer

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

仅在 Android 上使用 React Native(带有 expo)获取 FormData 网络错误

当我尝试使用 fetch 和 React Native(expo SDK 37)在 POST 中进行 fetch API 调用时FormData一切在 IOS 上都能完美运行,但在 Android 上会出现网络错误:[TypeError: Network request failed]。如果我使用 axios 而不是 fetch,我会遇到相同的错误(网络错误)。

如果我用空的 {} 替换 formData,它就可以工作。我已经检查了模拟器和物理设备(具有各种 Android 版本),并且尝试使用标头,但没有结果。我的 API 有一个有效的让我们加密证书

let url = 'https://my-prod-server/webservice';

let formData = new FormData();
formData.append('test1','test1');
formData.append('test2','test2');

let request = await fetch(url, {
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'multipart/form-data',
  },
  method: 'POST',
  body: formData,
})
.then(response => response.json())
.catch(error => console.log('API ERROR: ', error));

return request;
Run Code Online (Sandbox Code Playgroud)

android form-data fetch react-native expo

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

使用 formData 上传文件时输入错误

value我在以下部分收到的错误消息formData.append(key, value);

\n
\n

\'unknown\' 类型的参数不可分配给 \n\'string | 类型的参数 斑点\'。类型“{}”缺少\n类型“Blob”的以下属性:大小、类型、arrayBuffer、切片以及另外 2 个属性。

\n
\n

代码

\n
const uploadSubtitle = async e => {\n            e.preventDefault();\n            const file = fileInput.current.files[0];\n            const res = await Axios.get(`/api/movies/${currentMovie.movieId}/subtitles?user=${user.id}`);\n            const { url, fields } = res.data;\n            const newUrl = `https://${url.split(\'/\')[3]}.s3.amazonaws.com`;\n            const formData = new FormData();\n            const formArray = Object.entries({ ...fields, file });\n            formArray.forEach(([key, value]) => {\n                formData.append(key, value);\n            });\n           //... further code\n    };\n\n\n<form onSubmit={uploadSubtitle}>\n   <input type=\'file\' name=\'subtitle\' ref={fileInput} accept=\'.srt\' />\n   <button onClick={uploadSubtitle}>Upload</button>\n</form>\n
Run Code Online (Sandbox Code Playgroud)\n …

javascript multipartform-data form-data typescript

6
推荐指数
1
解决办法
2万
查看次数

使用内置 NodeJS `fetch` 在 FormData 中上传文件

如何使用 Node.JS 内置的 FormData 上传文件fetch(不是node_fetch)?

file-upload form-data fetch node.js

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