首页 新闻 会员 周边 捐助

【求助】iosAPP端内嵌H5不能上传ppt和doc文件(灰色无法选中),内嵌的问卷星页面是可以正常上传的。

0
悬赏园豆:100 [待解决问题]

【求助】iosAPP端内嵌H5不能上传ppt和doc文件(灰色无法选中),内嵌的问卷星页面是可以正常上传的。

代码如下:有人说去掉前面的“.”我去掉也不行;把.doc改成doc也不行,请教大佬如何修改

// #ifdef H5
uni.chooseFile({ // 文件选择
count: 1, // 默认100
extension:['txt', 'doc', 'pdf', 'ppt', 'xls', 'zip'],
success: (res) => {
try{
uni.showLoading({ title: '上传中' })
setTimeout(async () => {
await this.uniUploadFile(res.tempFilePaths, res.tempFiles)
uni.hideLoading()
this.$api.msg('上传成功')
}, 500)
} catch (e) {
uni.hideLoading()
this.$api.msg(失败:${e})
}
},
fail: (err) => {
this.$api.msg(本地读取错误)
}
});
// #endif

学以致用的人的主页 学以致用的人 | 初学一级 | 园豆:102
提问于:2023-02-17 16:45
< >
分享
所有回答(1)
0

很抱歉,我之前给出的示例代码可能会导致一些混淆。由于我无法直接访问您的服务器和环境,也无法提供完整可运行的示例。

下面,我将为您提供一个简化的前端和后端代码示例,帮助您了解文件上传的基本流程。这里使用Vue.js作为前端框架,Node.js作为后端服务器,并使用express框架来处理文件上传。

前端代码 (Vue.js示例):
<template>
<div>
<input type="file" @change="selectFile" />
<button @click="uploadFile">上传文件</button>
</div>
</template>

<script>
import axios from "axios";

export default {
methods: {
selectFile(event) {
this.selectedFile = event.target.files[0];
},
async uploadFile() {
if (!this.selectedFile) {
alert("请选择文件");
return;
}

  const formData = new FormData();
  formData.append("file", this.selectedFile);

  try {
    const response = await axios.post("/api/upload", formData);
    console.log(response.data);
    alert("文件上传成功!");
  } catch (error) {
    console.error(error);
    alert("文件上传失败!");
  }
},

},
};
</script>
后端代码 (Node.js示例,使用Express框架):
const express = require("express");
const app = express();
const multer = require("multer");
const path = require("path");

// 使用multer中间件处理文件上传
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "uploads/");
},
filename: function (req, file, cb) {
const ext = path.extname(file.originalname);
cb(null, ${file.fieldname}-${Date.now()}${ext});
},
});
const upload = multer({ storage: storage });

// 文件上传接口
app.post("/api/upload", upload.single("file"), (req, res) => {
if (!req.file) {
return res.status(400).json({ error: "No file uploaded" });
}

// 在这里处理上传的文件,例如保存到服务器或其他操作
// 可以根据需要修改服务器返回的数据
return res.json({ success: true, message: "File uploaded successfully" });
});

const port = 3000;
app.listen(port, () => {
console.log(Server running on port ${port});
});
上述代码中,前端部分使用Vue.js实现了一个简单的文件上传界面,通过axios库向后端发送文件数据。后端部分使用Node.js和Express框架处理文件上传请求,并使用multer中间件来解析文件数据并保存到指定目录。

为使示例能够运行,您需要安装Vue.js、axios、Node.js和express,并根据示例代码调整文件路径和接口URL。同时,您可能需要根据自己的后端技术栈和服务器配置做适当的调整。

请注意,示例中仅包含基本的文件上传流程,实际应用中可能需要更多的错误处理和安全性措施。希望这个示例能帮助您了解文件上传的基本原理,并在您的项目中得到有益的启示。

小九九呀 | 园豆:383 (菜鸟二级) | 2023-07-22 11:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册