gpt4 book ai didi

java - 图片无法上传到 FTP

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:12 24 4
gpt4 key购买 nike

所以我的程序正在从手机中选择图像,然后我想将其上传到我拥有的 ftp。我知道 FTP 连接正常,并且我可以通过文件管理器成功上传文档。我的问题是,当我从手机中选择图像时,它检测到的地址为:

/external/images/media/34

但是当我上传它时,logcat 说文件不存在:

03-09 16:00:32.702  19649-19678/net.azurewebsites.cosy W/System.err﹕ java.io.FileNotFoundException: /external/images/media/34: open failed: ENOENT (No such file or directory)
03-09 16:00:32.706 19649-19678/net.azurewebsites.cosy W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:409)
03-09 16:00:32.706 19649-19678/net.azurewebsites.cosy W/System.err﹕ at java.io.FileInputStream.<init>(FileInputStream.java:78)
03-09 16:00:32.706 19649-19678/net.azurewebsites.cosy W/System.err﹕ at net.azurewebsites.cosy.AddBook$UploadBook.doInBackground(AddBook.java:460)
03-09 16:00:32.706 19649-19678/net.azurewebsites.cosy W/System.err﹕ at net.azurewebsites.cosy.AddBook$UploadBook.doInBackground(AddBook.java:431)
03-09 16:00:32.706 19649-19678/net.azurewebsites.cosy W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
03-09 16:00:32.706 19649-19678/net.azurewebsites.cosy W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)

很明显这与文件路径有关。任何人都知道如何修复它,以便它选择文件并选择正确的地址这是我选择文件的代码:

Intent galleryInent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryInent, RESULT_LOAD_IMAGE);

super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && data !=null)
{
selectedImage = data.getData();
imageToUpload.setImageURI(selectedImage);

}

这是我将其上传到 ftp 的位置:

if (con.login("cosy\\username", "pass"))
{
Log.v("connection:","Successful");
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
String data = file;

FileInputStream in = new FileInputStream(new File(data));
if(type=="image")
{
con.changeWorkingDirectory("site/wwwroot/images/");
result = con.storeFile(BookName + ".jpg", in);
}
if(type=="file")
{
con.changeWorkingDirectory("site/wwwroot/Books/");
result = con.storeFile(BookName + ".pdf", in);
}
else
{
result =false;
}
in.close();
if (result)
Log.v("upload result", "succeeded");
con.logout();
con.disconnect();
}

最佳答案

您提供的路径不是绝对的,这就是找不到文件的原因。尝试使用 getContentResolver,如此 example 所示请记住,这适用于所有类型的文件。这是非常深入的答案,请记住 SDK 检查设备正在运行的版本,因此如果您的目标是较低版本,请确保不要忘记代码。

关于java - 图片无法上传到 FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35902625/

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