UploadFile.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <div>
  3. <h3 :style="{ marginBottom: '16px' }">
  4. demo2 上传文件到sm图床实现
  5. </h3>
  6. <!-- dev调试时,action参数:请填写你本地完整的api地址,如:http://localhost:7068/api/v1/example/uploadFile -->
  7. <a-upload-dragger
  8. name="file"
  9. :multiple="true"
  10. :action="action_url"
  11. @change="handleChange"
  12. >
  13. <p class="ant-upload-drag-icon">
  14. <a-icon type="inbox" />
  15. </p>
  16. <p class="ant-upload-text">
  17. Click or drag file to this area to upload
  18. </p>
  19. <p class="ant-upload-hint">
  20. Support for a single or bulk upload. Strictly prohibit from uploading company data or other
  21. band files
  22. </p>
  23. </a-upload-dragger>
  24. <!-- <a-card hoverable style="width: 240px">
  25. <img
  26. slot="cover"
  27. alt="example"
  28. src="https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png"
  29. />
  30. </a-card> -->
  31. <p/>
  32. <a-list v-if="image_info.length !== 0" size="small" bordered :data-source="image_info">
  33. <a-list-item style="text-align:left;" slot="renderItem" slot-scope="item">
  34. {{ item.id }}.&nbsp;{{ item.imageUrlText }}:&nbsp;
  35. <a :href="item.url" target="_blank">{{ item.url }}</a>
  36. </a-list-item>
  37. </a-list>
  38. </div>
  39. </template>
  40. <script>
  41. //import { uploadFile } from '@/api/main'
  42. export default {
  43. data() {
  44. return {
  45. action_url: process.env.VUE_APP_API_BASE_URL + '/api/v1/example/uploadFile',
  46. image_info: [],
  47. num: 0
  48. };
  49. },
  50. methods: {
  51. handleChange(info) {
  52. const status = info.file.status;
  53. if (status !== 'uploading') {
  54. console.log(info.file);
  55. }
  56. if (status === 'done') {
  57. // 去除list列表
  58. //info.fileList = [];
  59. const uploadRes = info.file.response;
  60. console.log('uploadRes:', uploadRes)
  61. if (uploadRes.code !== 'success') {
  62. this.$message.error(`file upload failed ${uploadRes.code} .`);
  63. return false;
  64. }
  65. this.num++;
  66. const picInfo = uploadRes.data;
  67. picInfo.id = this.num;
  68. picInfo.imageUrlText = 'image url';
  69. this.image_info.push(picInfo);
  70. this.$message.success(`${info.file.name} file uploaded successfully.`);
  71. } else if (status === 'error') {
  72. this.$message.error(`${info.file.name} file upload failed.`);
  73. }
  74. }
  75. }
  76. };
  77. </script>
  78. <style></style>