Java 将多个图像上载到FTP服务器时FileNotFoundException
从图库中选择多个图像后,我想将它们上载到ftp服务器。在上传过程中,我发现以下错误: “java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/IMG_20150724_220209.jpg/storage/emulated/0/DCIM/Screenshot/Screenshot_2015-08-04-14-47-38.png” 有人能帮忙吗Java 将多个图像上载到FTP服务器时FileNotFoundException,java,android,ftp,Java,Android,Ftp,从图库中选择多个图像后,我想将它们上载到ftp服务器。在上传过程中,我发现以下错误: “java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/IMG_20150724_220209.jpg/storage/emulated/0/DCIM/Screenshot/Screenshot_2015-08-04-14-47-38.png” 有人能帮忙吗 public类MainActivity扩展活动实现View.OnClickListe
public类MainActivity扩展活动实现View.OnClickListener{
私人线路布局图;
私人按钮btnAddPhots;
私人按钮btnsaviemages;
私有ArrayList图像列表;
私有位图;
私有位图的大小;
私有最终整数选取图像倍数=1;
静态最终字符串FTP_HOST=“”;
静态最终字符串FTP_USER=“”;
静态最终字符串FTP_PASS=“”;
字符串j;
Uri;
字符串[]th;
字符串str;
字符串picturepath,currentpath;
按钮b;
字符串r;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
如果(android.os.Build.VERSION.SDK_INT>9){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(策略);
}
lnrImages=(线性布局)findViewById(R.id.lnrImages);
btnAddPhots=(按钮)findViewById(R.id.btnAddPhots);
btnsaviemages=(按钮)findViewById(R.id.btnsaviemages);
b=(按钮)findViewById(R.id.btnsaviemages1);
btnAddPhots.setOnClickListener(此);
btnsavimages.setOnClickListener(此);
}
@凌驾
公共void onClick(视图){
开关(view.getId()){
案例R.id.btnAddPhots:
意向意向=新意向(MainActivity.this、CustomPhotoGalleryActivity.class);
startActivityForResult(意图、拾取图像或倍数);
打破
案例R.id.btnsaviemages:
if(imagesPathList!=null){
如果(imagesPathList.size()>=1){
文件f=新文件(“+r”);
Log.e(“文件”和“+f”);
doFileUpload(f);
Log.d(“保存图像”,“图像+图像列表”);
Toast.makeText(MainActivity.this,imagesPathList.size()+“未选择任何图像”,Toast.LENGTH_SHORT.show();
}否则{
Toast.makeText(MainActivity.this,imagesPathList.size()+“未选择任何图像”,Toast.LENGTH_SHORT.show();
}
}否则{
Toast.makeText(MainActivity.this,“未选择任何图像”,Toast.LENGTH_SHORT.show();
}
打破
}
}
公共文件上传(文件f){
FTPClient client=新的FTPClient();
试一试{
client.connect(FTP_主机,21);
Log.e(“clientconnect”,即“+客户端”);
客户端登录(FTP用户,FTP通行证);
Log.e(“clientlogin”,即“+client”);
setType(FTPClient.TYPE_二进制文件);
Log.e(“客户端类型”,“客户端+客户端”);
client.changeditory(“/real/”);
Log.i(“,”$$$$$”+(“/real/”);
//int reply=client.getReplyCode();
client.upload(f,新的MyTransferListener());
//Log.e(“文件名上传”,“照片文件”);
Log.e(“clientupload”,即“+客户端”);
//Log.e(“文件”,“文件名+文件名”);
}捕获(例外e){
e、 printStackTrace();
试一试{
client.disconnect(true);
}捕获(异常e2){
e2.printStackTrace();
}
}
}
公共类MyTransferListener实现FTPDataTransferListener{
已开始公开作废(){
//btn.setVisibility(视图已消失);
//转移开始了
Toast.makeText(getApplicationContext(),“已开始上载…”,
吐司。长度(短)。show();
//System.out.println(“已开始上载…”);
}
已转移公共无效(整数长度){
//但自上次以来,其他长度字节已被传输
//这个
//方法被调用
Toast.makeText(getApplicationContext(),
“已转移…”长度,吐司。长度(短)。显示();
//System.out.println(“传输…”+长度);
}
已完成公开作废(){
//btn.setVisibility(视图可见);
//转移完成
Toast.makeText(getApplicationContext(),“已完成…”,
吐司。长度(短)。show();
//System.out.println(“已完成…”);
}
公共作废中止(){
//btn.setVisibility(视图可见);
//传输中止
Toast.makeText(getApplicationContext(),
“传输已中止,请重试…”,
吐司。长度(短)。show();
//System.out.println(“中止…”);
}
public void失败(){
//btn.setVisibility(视图可见);
//传输失败
System.out.println(“失败…”);
}
//开玩笑。
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
如果(requestCode==PICK\u IMAGE\u MULTIPLE&&resultCode==Activity.RESULT\u确定
&&空!=数据){
//uri=data.getData();
//System.out.println(“当前映像路径为------>”+getRealPathFromURI(uri));
imagesPathList=newarraylist();
字符串[]imagesPath=data.getStringExtra(“数据”).split(“\\\\”);
试一试{
犯罪
Public class MainActivity extends Activity implements View.OnClickListener {
private LinearLayout lnrImages;
private Button btnAddPhots;
private Button btnSaveImages;
private ArrayList<String> imagesPathList;
private Bitmap yourbitmap;
private Bitmap resized;
private final int PICK_IMAGE_MULTIPLE = 1;
static final String FTP_HOST = "";
static final String FTP_USER = "";
static final String FTP_PASS = "";
String j;
Uri uri;
String str;
String picturepath, currentpath;
Button b;
String r;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
lnrImages = (LinearLayout) findViewById(R.id.lnrImages);
btnAddPhots = (Button) findViewById(R.id.btnAddPhots);
btnSaveImages = (Button) findViewById(R.id.btnSaveImages);
b = (Button) findViewById(R.id.btnSaveImages1);
btnAddPhots.setOnClickListener(this);
btnSaveImages.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnAddPhots:
Intent intent = new Intent(MainActivity.this,
CustomPhotoGalleryActivity.class);
startActivityForResult(intent, PICK_IMAGE_MULTIPLE);
break;
case R.id.btnSaveImages:
if (imagesPathList != null) {
if (imagesPathList.size() >= 1) {
for (int i = 0; i < imagesPath.length; i++) {
String strImg = imagesPath[i];
File f = new File("" + strImg);
Log.e("File", "" + f);
doFileUpload(f);
Log.d("saveimages", "" + imagesPathList);
}
Toast.makeText(
MainActivity.this,
imagesPathList.size()
+ " no of images are selected",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(
MainActivity.this,
imagesPathList.size() + " no of image are selected",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(MainActivity.this, " no images are selected",
Toast.LENGTH_SHORT).show();
}
break;
}
}
public void doFileUpload(File f) {
FTPClient client = new FTPClient();
try {
client.connect(FTP_HOST, 21);
Log.e("clientconnect", "" + client);
client.login(FTP_USER, FTP_PASS);
Log.e("clientlogin", "" + client);
client.setType(FTPClient.TYPE_BINARY);
Log.e("clienttype", "" + client);
client.changeDirectory("/ramesh2/");
Log.i("", "$$$$$$$$$$$$$$$$$" + ("/ramesh2/"));
// int reply = client.getReplyCode();
client.upload(f, new MyTransferListener());
// Log.e("filenameupload", "" + photoFile);
Log.e("clientupload", "" + client);
// Log.e("file",""+fileName);
} catch (Exception e) {
e.printStackTrace();
try {
client.disconnect(true);
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
public class MyTransferListener implements FTPDataTransferListener {
public void started() {
// btn.setVisibility(View.GONE);
// Transfer started
Toast.makeText(getApplicationContext(), " Upload Started ...",
Toast.LENGTH_SHORT).show();
// System.out.println(" Upload Started ...");
}
public void transferred(int length) {
// Yet other length bytes has been transferred since the last time
// this
// method was called
Toast.makeText(getApplicationContext(),
" transferred ..." + length, Toast.LENGTH_SHORT).show();
// System.out.println(" transferred ..." + length);
}
public void completed() {
// btn.setVisibility(View.VISIBLE);
// Transfer completed
Toast.makeText(getApplicationContext(), " completed ...",
Toast.LENGTH_SHORT).show();
// System.out.println(" completed ..." );
}
public void aborted() {
// btn.setVisibility(View.VISIBLE);
// Transfer aborted
Toast.makeText(getApplicationContext(),
" transfer aborted , please try again...",
Toast.LENGTH_SHORT).show();
// System.out.println(" aborted ..." );
}
public void failed() {
// btn.setVisibility(View.VISIBLE);
// Transfer failed
System.out.println(" failed ...");
}
// Jibble.
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_MULTIPLE
&& resultCode == Activity.RESULT_OK && null != data) {
// uri=data.getData();
// System.out.println("Current image Path is ----->" +
// getRealPathFromURI(uri));
imagesPathList = new ArrayList<String>();
imagesPath = data.getStringExtra("data").split("\\|");
try {
lnrImages.removeAllViews();
} catch (Throwable e) {
e.printStackTrace();
}
for (int i = 0; i < imagesPath.length; i++) {
Log.e("imagesPath can", "" + imagesPath);
imagesPathList.add(imagesPath[i]);
Log.w("imagesPathList are", "" + imagesPathList);
yourbitmap = BitmapFactory.decodeFile(imagesPath[i]);
Log.d("yourbitmap is", "" + yourbitmap);
ImageView imageView = new ImageView(this);
imageView.setImageBitmap(yourbitmap);
imageView.setAdjustViewBounds(true);
lnrImages.addView(imageView);
String listString = "";
for (String s : imagesPathList) {
listString += s + "\t";
}
j = listString.toString();
uri = Uri.parse(j);
r = uri.toString();
Log.d("mnmnmnmnmnmnmhjjuigyigsuiagducfuducgfasicfgds", "" + r);
Log.d("anananananananananananananananananananananannananand",
"" + uri);