我想访问图库并根据用户选择选择图像或视频。
我正在构建一个应用程序,用户可以在其中单击图库图标时上传图像或视频。我使用过 ImagePicker,但使用 ImagePicker 我必须为照片和视频制作两个单独的图标。我只想要一个图标来访问画廊并获得视频或照片作为回报。
IconButton(
icon: Icon(FontAwesome5.getIconData('file-video')),
iconSize: 52.0,
onPressed: () =>
ImagePicker.pickVideo(source: ImageSource.gallery),
)
Run Code Online (Sandbox Code Playgroud) 我从 file_picker flutter 包中获取文件路径。我想知道给定的路径是图像还是视频?我怎么知道提供的路径是图像还是视频。
我正在构建一个应用程序,用户可以将他们的视频上传到 firebase。我正在使用相机模块的相机包。我想在用户单击闪光灯图标时打开闪光灯或将其关闭。
我尝试找到一种通过相机包打开闪光灯的方法,但找不到任何打开闪光灯的方法。然后,我尝试使用灯泡包,但由于某种原因闪光灯无法打开。
import 'dart:io';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:flutter/foundation.dart';
import 'package:lamp/lamp.dart';
enum FlashState { Flash_OFF, Flash_On, Flash_Auto }
class CameraView extends StatefulWidget {
final List<CameraDescription> cameras = [];
CameraView() {
availableCameras().then((cams) {
cameras.addAll(cams);
print(cameras.length);
print(cams.toString());
});
}
@override
_CameraViewState createState() => _CameraViewState();
}
class _CameraViewState extends State<CameraView>
with SingleTickerProviderStateMixin {
CameraController _controller;
int _selectedCameraIndex;
bool _isRecording;
FlashState currentFlashState = FlashState.Flash_OFF;
String flashIcon = 'flash-off';
AnimationController _animationController;
Animation _colorTween; …
Run Code Online (Sandbox Code Playgroud) 我正在firebase_storage: ^8.0.6
flutter web 上使用该包。我想将图像上传到我使用FilePicker
package.json 获得的 firebase 存储。问题是新包使用 putFile() 方法上传文件。但是 dart:io 中的 File 不适用于 flutter web,并且它也不接受 dart:html 中的 File 对象。
我可以使用 putBlob() 方法将图像上传为 Blob,但它不会将其作为图像类型上传,但它的类型是application/octet-stream
. 我不想将图像文件作为 blob 上传。
Future<String> uploadImage(PlatformFile file) async {
try {
TaskSnapshot upload = await FirebaseStorage.instance
.ref(
'events/${file.name}-${DateTime.now().toIso8601String()}.${file.extension}')
.putBlob(Blob(file.bytes));
String url = await upload.ref.getDownloadURL();
return url;
} catch (e) {
print('error in uploading image for : ${e.toString()}');
return ';
}
}
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
我正在尝试使用 FastAPI 中的 PUT 操作更新数据库中的单个记录。但出于某种原因,我不断收到此错误。除了这一项之外,所有其他操作都可以正常工作。该错误仅针对更新查询引发。
AttributeError: 'Blog' object has no attribute 'items'
Run Code Online (Sandbox Code Playgroud)
这是相关的代码。
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
class Blog(BaseModel):
title: str
body: str
@app.put('/blog/{id}', status_code=status.HTTP_204_NO_CONTENT, response_class=Response)
def update(id: int, request: schemas.Blog, db: Session = Depends(get_db)):
blog = db.query(models.Blog).filter(models.Blog.id == id)
if not blog.first():
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND,
detail=f'Blog with id {id} not found')
blog.update(request)
db.commit()
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
Traceback (most recent call last):
File "c:\dev\fast-tuts\env\lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 396, in run_asgi
result = await app(self.scope, self.receive, self.send)
File "c:\dev\fast-tuts\env\lib\site-packages\uvicorn\middleware\proxy_headers.py", line …
Run Code Online (Sandbox Code Playgroud)