全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android上传文件到Web服务器 PHP接收文件

Android上传文件到服务器,通常采用构造http协议的方法,模拟网页POST方法传输文件,服务器端可以采用JavaServlet或者PHP来接收要传输的文件。使用JavaServlet来接收文件的方法比较常见,在这里给大家介绍一个简单的服务器端使用PHP语言来接收文件的例子。
服务器端代码比较简单,接收传输过来的文件:

<?php 
$target_path = "./upload/";//接收文件目录 
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
  echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; 
} else{ 
  echo "There was an error uploading the file, please try again!" . $_FILES['uploadedfile']['error']; 
} 
?> 

手机客户端代码:

package com.figo.uploadfile; 
 
import java.io.BufferedReader; 
import java.io.DataOutputStream; 
import java.io.FileInputStream; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 
 
public class UploadfileActivity extends Activity 
{ 
 // 要上传的文件路径,理论上可以传输任何文件,实际使用时根据需要处理 
 private String uploadFile = "/sdcard/testimg.jpg"; 
 private String srcPath = "/sdcard/testimg.jpg"; 
 // 服务器上接收文件的处理页面,这里根据需要换成自己的 
 private String actionUrl = "http://10.100.1.208/receive_file.php"; 
 private TextView mText1; 
 private TextView mText2; 
 private Button mButton; 
 
 @Override 
 public void onCreate(Bundle savedInstanceState) 
 { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
 
  mText1 = (TextView) findViewById(R.id.myText2); 
  mText1.setText("文件路径:\n" + uploadFile); 
  mText2 = (TextView) findViewById(R.id.myText3); 
  mText2.setText("上传网址:\n" + actionUrl); 
  /* 设置mButton的onClick事件处理 */ 
  mButton = (Button) findViewById(R.id.myButton); 
  mButton.setOnClickListener(new View.OnClickListener() 
  { 
   @Override 
   public void onClick(View v) 
   { 
    uploadFile(actionUrl); 
   } 
  }); 
 } 
 
 /* 上传文件至Server,uploadUrl:接收文件的处理页面 */ 
 private void uploadFile(String uploadUrl) 
 { 
  String end = "\r\n"; 
  String twoHyphens = "--"; 
  String boundary = "******"; 
  try 
  { 
   URL url = new URL(uploadUrl); 
   HttpURLConnection httpURLConnection = (HttpURLConnection) url 
     .openConnection(); 
   // 设置每次传输的流大小,可以有效防止手机因为内存不足崩溃 
   // 此方法用于在预先不知道内容长度时启用没有进行内部缓冲的 HTTP 请求正文的流。 
   httpURLConnection.setChunkedStreamingMode(128 * 1024);// 128K 
   // 允许输入输出流 
   httpURLConnection.setDoInput(true); 
   httpURLConnection.setDoOutput(true); 
   httpURLConnection.setUseCaches(false); 
   // 使用POST方法 
   httpURLConnection.setRequestMethod("POST"); 
   httpURLConnection.setRequestProperty("Connection", "Keep-Alive"); 
   httpURLConnection.setRequestProperty("Charset", "UTF-8"); 
   httpURLConnection.setRequestProperty("Content-Type", 
     "multipart/form-data;boundary=" + boundary); 
 
   DataOutputStream dos = new DataOutputStream( 
     httpURLConnection.getOutputStream()); 
   dos.writeBytes(twoHyphens + boundary + end); 
   dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"" 
     + srcPath.substring(srcPath.lastIndexOf("/") + 1) 
     + "\"" 
     + end); 
   dos.writeBytes(end); 
 
   FileInputStream fis = new FileInputStream(srcPath); 
   byte[] buffer = new byte[8192]; // 8k 
   int count = 0; 
   // 读取文件 
   while ((count = fis.read(buffer)) != -1) 
   { 
    dos.write(buffer, 0, count); 
   } 
   fis.close(); 
 
   dos.writeBytes(end); 
   dos.writeBytes(twoHyphens + boundary + twoHyphens + end); 
   dos.flush(); 
 
   InputStream is = httpURLConnection.getInputStream(); 
   InputStreamReader isr = new InputStreamReader(is, "utf-8"); 
   BufferedReader br = new BufferedReader(isr); 
   String result = br.readLine(); 
 
   Toast.makeText(this, result, Toast.LENGTH_LONG).show(); 
   dos.close(); 
   is.close(); 
 
  } catch (Exception e) 
  { 
   e.printStackTrace(); 
   setTitle(e.getMessage()); 
  } 
 } 
} 

在AndroidManifest.xml文件里添加网络访问权限:
<uses-permission android:name="android.permission.INTERNET" /> 

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android上传文件到Web服务器  # PHP接收文件  # Android上传文件  # Android App端与PHP Web端的简单数据交互实现示例  # Android md5加密与php md5加密一致详解  # Android通过PHP服务器实现登录功能  # PHP简单判断iPhone、iPad、Android及PC设备的方法  # php、java、android、ios通用的3des方法(推荐)  # 基于PHP后台的Android新闻浏览客户端  # php生成Android客户端扫描可登录的二维码  # Android异步上传图片到PHP服务器  # 使用PHP开发Android应用程序技术介绍  # Android访问php取回json数据实例  # android+json+php+mysql实现用户反馈功能方法解析  # Android和PHP MYSQL交互开发实例  # 自己的  # 上传文件  # 上传  # 在这里  # 给大家  # 理论上  # 大家多多  # 客户端  # 访问权限  # 器上  # 传输文件  # 内存不足  # public  # private  # extends  # UploadfileActivity  # Toast  # os  # Bundle  # Activity 


相关文章: 详解jQuery停止动画——stop()方法的使用  西安专业网站制作公司有哪些,陕西省建行官方网站?  大连网站制作公司哪家好一点,大连买房网站哪个好?  深入理解Android中的xmlns:tools属性  平台云上自主建站:模板化设计与智能工具打造高效网站  如何做静态网页,sublimetext3.0制作静态网页?  建站之星各版本价格是多少?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  javascript中对象的定义、使用以及对象和原型链操作小结  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何选择香港主机高效搭建外贸独立站?  如何在Windows服务器上快速搭建网站?  购物网站制作公司有哪些,哪个购物网站比较好?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  深圳网站制作平台,深圳市做网站好的公司有哪些?  html制作网站的步骤有哪些,iapp如何添加网页?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  广州商城建站系统开发成本与周期如何控制?  h5在线制作网站电脑版下载,h5网页制作软件?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何高效配置香港服务器实现快速建站?  南京网站制作费用,南京远驱官方网站?  c# 在ASP.NET Core中管理和取消后台任务  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  内部网站制作流程,如何建立公司内部网站?  网页设计网站制作软件,microsoft office哪个可以创建网页?  如何自定义建站之星模板颜色并下载新样式?  建站之星如何开启自定义404页面避免用户流失?  如何零成本快速生成个人自助网站?  如何在IIS管理器中快速创建并配置网站?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站主机选虚拟主机还是云服务器更好?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  广平建站公司哪家专业可靠?如何选择?  宝塔面板如何快速创建新站点?  建站之星代理费用多少?最新价格详情介绍  北京企业网站设计制作公司,北京铁路集团官方网站?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  在线制作视频的网站有哪些,电脑如何制作视频短片?  高防服务器租用指南:配置选择与快速部署攻略  北京建设网站制作公司,北京古代建筑博物馆预约官网?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  建站VPS能否同时实现高效与安全翻墙?  如何选择适配移动端的WAP自助建站平台?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。