在 UniApp 中,可以通过 wx.getFileSystemManager().readFile 将临时文件转换为 Base64 编码,并将编码后的数据发送给后端的 PHP 服务器解码保存到服务器上。以下是实现步骤:
1. 将临时文件转换为 Base64 编码uni.chooseImage({
success: (res) => {
const filePath = res.tempFilePaths[0];
// 读取文件并转换为 Base64
uni.getFileSystemManager().readFile({
filePath: filePath,
encoding: 'base64',
success: (result) => {
const base64Data = result.data;
// 发送 Base64 数据到后端
uni.request({
url: 'https://your-backend-url.com/upload.php',
method: 'POST',
data: {
fileData: base64Data,
fileName: 'yourFileName.jpg' // 文件名可自定义
},
success: (uploadRes) => {
console.log('上传成功', uploadRes.data);
},
fail: (err) => {
console.error('上传失败', err);
}
});
},
fail: (error) => {
console.error('文件读取失败', error);
}
});
}
}); 2. 后端 PHP 代码:解码并保存 Base64 文件在 PHP 服务器端,接收并解码文件数据,再保存到服务器上。如下所示:
<?php
// 获取 POST 中的文件数据和文件名
$fileData = $_POST['fileData'];
$fileName = $_POST['fileName'];
// 设置保存路径
$savePath = "uploads/" . $fileName;
// 将 Base64 数据解码为二进制数据
$fileContent = base64_decode($fileData);
// 保存文件到服务器
if (file_put_contents($savePath, $fileContent)) {
echo json_encode(['status' => 'success', 'message' => 'File uploaded successfully.']);
} else {
echo json_encode(['status' => 'error', 'message' => 'Failed to save file.']);
}
?> 注意事项后端安全:确保服务器端对上传的 Base64 数据进行验证,以防止潜在的安全风险。文件名管理:避免文件名冲突,可以在文件名前增加时间戳或唯一标识符。目录权限:确保 PHP 有权限在 uploads 目录下写入文件。 网友回复
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?
linux上如何运行任意windows程序?
ai能写出比黑客还厉害的零日漏洞等攻击工具攻击任意软件系统工程?
js如何获取浏览器的音频上下文指纹、Canvas指纹、WebGL渲染特征?
为啥ai开始抛弃markdown文本,重新偏好html文本了?
网站有没有办法鉴别访问请求是由ai操控chrome-devtools-mcp发出的?


