我需要从设备中挑选文件,
这是我的代码,
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
String[] mimeTypes = {"image/*", "application/pdf"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
startActivityForResult(intent, PICK);
Run Code Online (Sandbox Code Playgroud)
选择的 URI url 在 Android 10 设备上总是这样,
content://com.android.providers.downloads.documents/document/msf:75878
Run Code Online (Sandbox Code Playgroud)
我尝试了许多不同的解决方案来从这个 URI 获取文件路径,但没有运气,
注意:我的应用程序在 Android 10 之前的设备上运行良好,我能够获取选择的文件路径。
我正在使用自己的自定义文件选择器和TinyMCE 4的新file_picker_callback函数.关于这个的文档并不是很好,所以有信心让弗雷德让我这么做 - /sf/answers/1720026031/
自定义文件选择器正在工作,当您单击图像时,它会填充"源"和"维度".我只是想知道是否有任何方法可以自动填写"图像描述"字段.
图像的信息是从数据库表生成的,所以我已经有了描述,自动为用户填写它会很好.在尝试了各种传递数据的方法后,我很难理解它是如何完成的.
TinyMCE代码:
tinymce.init({
...
file_picker_callback: function(callback, value, meta) {
myImagePicker(callback, value, meta);
}
});
function myImagePicker(callback, value, meta) {
tinymce.activeEditor.windowManager.open({
title: 'Image Browser',
url: '/media/browser/1?type=' + meta.filetype,
width: 800,
height: 550,
}, {
oninsert: function (url) {
callback(url);
}
});
};
Run Code Online (Sandbox Code Playgroud)
自定义文件选择器的代码:
$(function(){
$('.img').on('click', function(event){
mySubmit('/upload/' + $(this).data('filename'));
});
});
function mySubmit(url) {
top.tinymce.activeEditor.windowManager.getParams().oninsert(url);
top.tinymce.activeEditor.windowManager.close();
}
Run Code Online (Sandbox Code Playgroud)
我的javascript知识并不是最好的,因为我对它很陌生,所以如果你可以请用例子和/或明确的逻辑来说明任何答案,这将是非常有用和非常感激的.
在Android中,可以使用ACTION_OPEN_DOCUMENTIntent 打开本机文件选择器并选择例如.mp4文件.这是通过将mime类型设置为video/mp4使用以下代码来实现的:
public static void pickFile(Context mContext, int REQUEST_CODE) {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("video/mp4");
((Activity) mContext).startActivityForResult(intent, REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)
在我的项目中,我想选择一个自定义扩展文件,其mime类型在android的MimeTypeMap中是未知的,例如.qgs或.dcm文件.
为了解决这个问题,我发现到目前为止我们未能实现的两种可能性:
ACTION_OPEN_DOCUMENTIntent中按扩展名过滤ACTION_OPEN_DOCUMENTIntent 一起使用这些选择是否可行以及如何? 或者我没有编写自己的文件选择器而错过了其他方法吗?
我正在使用文件选择器插件从设备中选择文件。该文件是在 PlatformFile 的数据类型中选择的,但我想将该文件发送到 Firebase Storage,并且我需要一个常规文件。如何将 PlatformFile 转换为文件以便将其发送到 Firebase Storage?这是代码:
PlatformFile pdf;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
void _trySubmit() async {
final isValid = _formKey.currentState.validate();
if (isValid) {
_formKey.currentState.save();
final ref = FirebaseStorage.instance
.ref()
.child('article_pdf')
.child(title + '-' + author + '.pdf');
await ref.putFile(pdf).onComplete; // This throws an error saying that The argument type 'PlatformFile' can't be assigned to the parameter type 'File'
}
}
void _pickFile() async {
FilePickerResult result = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['pdf'],
);
if (result …Run Code Online (Sandbox Code Playgroud) 在 Window 7 上使用 Firefox v73 出现以下问题:
在我的代码中,我在 html 中使用多文件选择器来并行上传多达 100 个文件:
<input type="file" id="files" name="files" multiple>
Run Code Online (Sandbox Code Playgroud)
这些文件将被发送到 REST-API,然后由其处理。当我选择当前正在使用的单个文件(在文件资源管理器中)时,我收到一条错误消息(可能通过窗口),告诉我该文件无法被选中,因为它正在使用中。如果我尝试选择包含一个或多个正在使用的文件的多个文件,我没有发生错误,但是当到达正在使用的文件并等待文件被释放时,上传似乎停止。这导致请求等待超时(在我的情况下为 1 分钟)。
在尝试上传文件之前,是否有任何选项可以解决问题(正在使用的文件)?
PS:我在 Chrome 中尝试过相同的方法,它在将请求发送到 REST-API 之前返回一个错误。
我的表单上有简单的HTML文件控件.它本质上是动态的,意味着用户可以上传一个或多个文件.它的HTML如下:
<input type="file" id="image_book" class="image_book upload" name="image[]" accept="image/*" value=""/>
Run Code Online (Sandbox Code Playgroud)
如果我使用上面的HTML文件控件上传两个图像并提交表单,我会得到以下$_FILES数组(输出print_r($_FILES);):
Array
(
[image] => Array
(
[name] => Array
(
[0] => Aurbd-b3582991-large.jpg
[1] => BL_Miller_GD_Square_KV_300dpi_A2.jpg
)
[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
)
[tmp_name] => Array
(
[0] => /tmp/phpSt8CJJ
[1] => /tmp/phpibFjR2
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 519179
[1] => 86901
)
)
)
Run Code Online (Sandbox Code Playgroud)
现在根据新的要求,我将使用Filepicker而不是简单的HTML文件控件来将文件上传到服务器.但我面临的问题是考虑到上面的数组($_FILES)内容,已经编写了进一步的代码逻辑和操作. …
我在使用ACTION_GET_CONTENT从Downloads目录中选择文件时遇到问题.
如果我删除了我的本地存储中的ES资源管理器或文件管理器中的任何文件,那么在我的应用程序中打开时,这些已删除的文件不会在下载目录中删除.
下载中的任何更改都不会反映在选择器中.
要选择我正在使用以下库的文件
https://github.com/iPaulPro/aFileChooser.
在这里我附上我的截图请看看:
android SDK上有一些“选择文件夹对话框”吗?我用谷歌搜索,但没有找到任何东西。
我的意思是我正在寻找会弹出的对话框,并为我提供选择文件夹路径的选项(例如选择文件对话框...,但是return参数将是文件夹的完整路径)
很难相信,在这个奇妙的SDK中无法选择完整的文件夹路径。
任何帮助请..
谢谢。
我正在创建一个Flutter项目,其中我有一个数据(JSON),我想从中导入并导出到用户想要的位置.为了实现这一点,我需要File PickerFlutter中的插件.现在,我搜索了Dart Packages存储库"file picker"但没找到.
有没有办法让文件选择器看起来像这样:
甚至这......
第一个屏幕截图对我来说更合适,因为它允许从不同的来源(如Drive)选择文件.
此外,由于我想导出数据,我可能也想要一个Folder Picker.;)
但是,如果有文件夹选择器的任何其他替代品.我很高兴知道......
我试图通过单击按钮(可组合函数)来启动文件选择器。无法使用startActivityForResult()。
@Composable
fun SelectScreen() {
Button(onClick = {
val intent = Intent(Intent.ACTION_GET_CONTENT)
startActivity(intent)
}
) {
Text("BUTTON")
}
}
Run Code Online (Sandbox Code Playgroud) android filechooser filepicker kotlin android-jetpack-compose
filepicker ×10
android ×5
flutter ×2
android-10.0 ×1
callback ×1
dart ×1
directory ×1
file-upload ×1
filechooser ×1
firefox ×1
html ×1
java ×1
javascript ×1
kotlin ×1
mime-types ×1
php ×1
tinymce ×1
tinymce-4 ×1