这是我的活动课程的一部分。通过调用下面的Intent我打开一个文件选择器意图选择一个图像或视频。到目前为止这是有效的。
public class Activity extends AppCompatActivity {
EditText et;
private static final int PICKFILE_RESULT_CODE = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// EditText to show filepath after intent
et = (EditText)findViewById(R.id.et);
// Start intent to pick a file
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*|video/*");
startActivityForResult(intent,PICKFILE_RESULT_CODE);
}
这里我检索文件的路径:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode)
{
case PICKFILE_RESULT_CODE:
if(resultCode==RESULT_OK){
// Get path of selected file and set it to editText
String filePath = data.getData().getPath();
et_upload.setText(filePath);
}
break;
}
}
}
结果如下,
"/path/to/file/fileName".
但我想要包含文件扩展名:
"/path/to/file/fileName.png"
我错过了什么?
提前感谢您的帮助。 :)
答案 0 :(得分:1)
到目前为止这是有效的。
setType()
不支持|
运营商。
我错过了什么?
首先,单独的道路是没有意义的。 ACTION_GET_CONTENT
通常会返回content://
Uri
,该路径仅对ContentProvider
有意义。例如,这不是文件系统上文件的路径。
其次,Uri
不必包含文件扩展名。
如果您想知道Uri
支持的内容的MIME类型,请使用ContentResolver
和its getType()
method。如果要将该MIME类型转换为文件扩展名use MimeTypeMap
。
答案 1 :(得分:0)
这种方式你能实现这个......记住这不是一个完整的解决方案..
根据它调整您的代码
var dict = {
zipCode : 78457,
property2 : "hi there"
};
$.param(dict) // returns "zipCode=78457&property2=hi+there"