首页 > 解决方案 > Expo takePictureAsync 将照片上传到 Laravel

问题描述

尝试使用 expo 相机使用 Laravel 上传照片。由于无法创建上传文件的最佳工作流程。

const takePicture = async () => {
const options = {quality: 0.3, base64: false};
const { uri } =  await camera.current.takePictureAsync(options);

let formData = new FormData();
formData.append('file', {
  uri: uri.replace("file:///", ""),
  type:'image/jpg', name:'userProfile.jpg',
});
console.log(formData)

dispatch(Read.action(formData))

console.log('answer')};

我的阅读动作:

import api, { handleError, setClientToken } from '@/Services'

export default async (data) => {
  const response = await api.post('upload', data)
  return response.data
}

我的服务文件:

import axios from 'axios'
import { Config } from '@/Config'

const instance = axios.create({
  baseURL: Config.API_URL,
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  timeout: 3000,
})

export const handleError = ({ message, data, status }) => {
  return Promise.reject({ message, data, status })
}

instance.interceptors.response.use(
  (response) => response,
  ({ message, response: { data, status } }) => {
    return handleError({ message, data, status })
  },
)

export default instance

和我的 laravel 文件:

    $unique = uniqid();
    //Move Uploaded File
    $destinationPath = 'uploads/'.$unique;
    $filename = uniqid().".".$file->getClientOriginalExtension();
    $file->move($destinationPath,$filename);

那是行不通的。它每次都返回错误。那个代码有什么问题?

标签: phplaravelreact-native

解决方案


推荐阅读