upload上传本地图片(前后端)

首先我们先来配置后端:

第一步:在终端输入 npm i multiparty

​​npm i multiparty

第二步:在后端中创建一个upload文件夹,用来存放照片

  

第三步 在app.js文件中配置上传图片的虚拟路由以及路径

  

最后在项目中引入 multiparty

  

 这是图片上传的接口 可以参考   

  

上述就是后端总体的配置

接下来我们配置前端     

使用React vant组件来进行图片上传 以下是一个基本的代码 里面的内容可以自我修改

import React, { useState } from 'react';
import './Dong.less';
import { history } from 'umi';
import axios from 'axios';
import { upload, demoData } from './tem';
import { Toast } from 'antd-mobile';
import { Button, Input, Rate, Uploader, Form } from 'react-vant';
import { Cross, Exchange, Arrow } from '@react-vant/icons';
export default function Dong() {
  const handleUser = () => {
    history.push('/user');
  };
  const [form] = Form.useForm();
  const onFinish = async (values: any) => {
    console.log(values, 'form');
    let { data } = await axios.post('http://localhost:3000/adddong', values);
    history.push('/user');
    if (data.code == 200) {
      Toast.show({
        icon: 'success',
        content: data.msg,
      });
    }
  };

  return (
    <div className="Dong">
      <div className="Dong-Top">
        <span onClick={handleUser}>
          <Cross />
        </span>
        <span>
          <Exchange />
        </span>
        <span>
          <Arrow />
        </span>
      </div>
      <Form
        className="inp"
        colon
        form={form}
        onFinish={onFinish}
        footer={
          <div style={{ margin: '16px 16px 0' }}>
            <Button
              round
              nativeType="submit"
              type="primary"
              block
              style={{ border: '0' }}
            >
              提交
            </Button>
          </div>
        }
      >
        <Form.Item name="title" label="标题" className="inp1">
          <Input placeholder="标题" />
        </Form.Item>
        <Form.Item name="content" label="内容" className="inp2">
          <Input placeholder="内容" />
        </Form.Item>

        <Form.Item
          className="inp3"
          name="img"
          label="头像"
          rules={[{ required: true, message: '请选择文件' }]}
        >
          <Uploader upload={upload} />
        </Form.Item>
      </Form>
    </div>
  );
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Django 中实现前后端分离的图片上传,可以通过以下步骤来完成: 1. 在前端页面中添加一个文件上传的表单,例如: ```html <form enctype="multipart/form-data" method="POST"> {% csrf_token %} <input type="file" name="image"> <button type="submit">上传</button> </form> ``` 2. 在 Django 后端中编写一个视图函数来处理图片上传请求,例如: ```python from django.http import JsonResponse def upload_image(request): if request.method == 'POST' and request.FILES['image']: image = request.FILES['image'] # 处理上传图片,例如保存到本地或上传到云存储 # ... # 返回上传结果 return JsonResponse({'status': 'success', 'url': 'http://example.com/path/to/image'}) else: return JsonResponse({'status': 'error', 'message': '上传失败'}) ``` 3. 在前端页面中使用 AJAX 技术将图片上传请求发送到后端,并在上传成功后显示上传结果,例如: ```javascript $('form').submit(function(event) { event.preventDefault(); var formData = new FormData(this); $.ajax({ url: '/upload_image/', type: 'POST', data: formData, processData: false, contentType: false, success: function(response) { if (response.status == 'success') { // 显示上传成功的图片 $('#image').attr('src', response.url); } else { alert('上传失败:' + response.message); } }, error: function(xhr, status, error) { alert('上传失败:' + error); } }); }); ``` 其中,`/upload_image/` 是后端处理图片上传请求的 URL,`FormData` 对象可以将表单数据序列化为一个 `multipart/form-data` 格式的字符串,`processData: false` 和 `contentType: false` 参数可以避免 jQuery 对表单数据进行默认的处理,从而实现上传文件的功能。上传成功后,可以通过 `response.url` 获取上传图片的 URL,并显示在页面上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值