gpt4 book ai didi

java - 从 SD 卡中选择文件并通过 HTTP Post 发送

转载 作者:行者123 更新时间:2023-12-02 05:36:24 26 4
gpt4 key购买 nike

我想制作一个应用程序,允许我从 SD 卡(.apk 文件)中选择一个文件,然后通过 HTTP Post 将其发送到 Web 服务。问题是,即使我可以选择该文件,我也无法将其转换为字节数组,因为我的应用程序正在其私有(private)文件夹中查找它,而不是在 SDcard 中。

我使用 Intent 访问 FileManager 并从存储中选择一个文件。然后,Toast 通知会向我显示它的路径。

public class MainActivity extends AppCompatActivity {    
Button button1;
Intent intent;
String PathHolder;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button1 = findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 1);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
PathHolder = data.getData().getPath();
File file = new File(PathHolder);

String FileName = file.getName();
Toast.makeText(MainActivity.this, PathHolder, Toast.LENGTH_LONG).show();

try {
byte[] bArray = new byte[(int) file.length()];
FileInputStream inputStream = new FileInputStream(file);
inputStream.read(bArray);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
}
}

之后

FileInputStream inputStream = new FileInputStream(f);

我的应用程序抛出异常,响应是:

File Not Found

最佳答案

您正在其上构建 FileInputStream 的变量 f 从未分配过,还是我错了?我认为你应该将 f 更改为 file

关于java - 从 SD 卡中选择文件并通过 HTTP Post 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56163458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com