如何将服务器端的文件或文件夹下载到本地

4 篇文章 1 订阅

问题如上所示,企业开发人员的数据和程序很多都是放在服务器上面的,但是有时候需要下载到本地跑一下或者进行修改。我使用的是scp命令。
先来看看如何将服务器上面文件下载到本地,直接上命令:

scp zhuhualong@192.168.202.101:/data/share/for_zhl/target.txt /Users/zhuhualong/target.txt 

其中“zhuhualong”是你在服务器上的用户名,“192.168.202.101”是服务器的IP地址,“/data/share/for_zhl”是你目标文件所在的目录,“target.txt”是你要下载的目标文件,“/Users/zhuhualong”是你本地要存储所下文件的目录,后面这个“target.txt ”是你为目标文件取的新的文件名称,我这里设置为了和目标文件相同的名字,你也可以更改。
值得注意的是,上述命令只能将服务器上的文件下载到本地,但是有时候我们还需要从服务器上下载文件夹,其实只要在scp命令后面加上“-r”就可以了。比如我想将上述服务器上的文件夹“for_zhl”下载到本地,命令如下:

scp -r zhuhualong@192.168.202.101:/data/share/for_zhl /Users/zhuhualong/zhl

可以看到我是将服务器上面的文件夹“for_zhl”下载到了本地并命名为了“zhl”。
需要注意的是,上述命令都是在电脑终端直接运行的。
如果需要上传的话,比如上传文件到服务器上,只要将上述的目录对换位置即可,即:

scp /Users/zhuhualong/target.txt zhuhualong@192.168.202.101:/data/share/for_zhl/target.txt 

上传文件夹同理。

  • 17
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现这个功能,你需要做以下几个步骤: 1. 在 `AndroidManifest.xml` 文件中添加读取本地相册权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 2. 在你的 Activity 中添加选择图片的方法: ```java private static final int REQUEST_SELECT_PICTURE = 0; private void selectPicture() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, REQUEST_SELECT_PICTURE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_SELECT_PICTURE && resultCode == RESULT_OK && data != null) { Uri selectedImage = data.getData(); uploadImage(selectedImage); } } ``` 3. 在 `uploadImage()` 方法中上传选择的图片到服务器文件夹中。你可以使用 `OkHttp` 网络库来实现上传。以下是一个简单的上传图片的示例: ```java private void uploadImage(Uri imageUri) { File imageFile = new File(getRealPathFromURI(imageUri)); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("image", imageFile.getName(), RequestBody.create(MediaType.parse("image/*"), imageFile)) .build(); Request request = new Request.Builder() .url("https://your-server.com/upload") .post(requestBody) .build(); OkHttpClient client = new OkHttpClient(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { Log.d("TAG", "Image uploaded successfully!"); } }); } private String getRealPathFromURI(Uri uri) { String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(uri, projection, null, null, null); if (cursor == null) return null; int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String path = cursor.getString(column_index); cursor.close(); return path; } ``` 4. 在你的服务器端设置一个接口来处理上传的图片,并将其保存到指定的文件夹中。 以上是一个简单的实现方法。当然,你还需要处理一些异常情况,例如用户未授权读取本地相册的权限,或者上传图片失败等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值