安卓上传文件(绝对可以用)

说明:使用是httpclient+MultipartEntity,因此需要导入包:httpmime-4.1.1这个包非常重要!务必导入!)

写在前面:我只是贴出核心代码,只是记录下我寻找上传功能的过程,我是一个PHPer,最近项目需要编写APP,因此就刚学习Android开发。如果你也正在学习Android可以一起交流一下~~

上代码:(安卓客户端代码)直接贴出关键部分

/*
	 * 图片上传
	 */
	private void httpUpload() {
		HttpClient httpclient = new DefaultHttpClient();
		// 设置通信协议版本
		httpclient.getParams().setParameter(
				CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

		String pathToOurFile = C.dir.images + File.separator + filename;
		//要上传的图片/mnt/sdcard/images/IMG_20131026_072832.jpg
		Log.w("file", pathToOurFile);
		String urlServer = "http://192.168.1.180/index/upload/index.php";
		HttpPost httppost = new HttpPost(urlServer);
		File file = new File(pathToOurFile);

		MultipartEntity mpEntity = new MultipartEntity(); // 文件传输(这个需要用到httpmime-4.1.1.jar)
		ContentBody cbFile = new FileBody(file);
		StringBody n = null;
		try {
			n = new StringBody("这里可以传递其他内容");
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		mpEntity.addPart("name", n);//
		mpEntity.addPart("file", cbFile); // 
		httppost.setEntity(mpEntity);
		try {
			httpclient.execute(httppost);
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		httpclient.getConnectionManager().shutdown();
		//上传成功,删除临时文件
		file.delete();
		Log.w("result", "上传成功!");
	}

说明:我这里只是为了实现上传功能,随后需要按照服务器端的返回结果进行处理~

服务器端代码:(PHP代码

        $arrTmp = pathinfo($_FILES['file']['name']);//获取上传文件信息
        $extension = strtolower($arrTmp['extension']);//获取扩展,并转成小写
        $file_newname = time().".".$extension;
        $result = @move_uploaded_file($_FILES['file']['tmp_name'],$file_newname);

Continue reading

IIS6+Rewrite3重载隐藏index.php

[ISAPI_Rewrite]
RewriteEngine on
RewriteCond %{HTTP:Host} ^phpfs.com$
RewriteRule (.*) http://www.phpfs.com/$1 [NC,R=301]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|jpg|ico|gif|jpeg|bmp|png|css|swf|flv|html|php)$ index.php [L]

最近朋友买了一个XX空间(我没有要黑你的意思,你们老大是我最崇拜的一个人物),我用zf开发了一个网站,结果Rewrite出错!

1、先是警告:Warning: is_readable() [function.is-readable]: open_basedir restriction in effect

我就再那个文件中函数加了@屏蔽了警告。这个警告问题解决了。(这是个简单的问题)

2、可是!!还没有解决rewrite。我尝试了n个方法。于是我就咨询他们空间商,他们空间说说提供的是rewrite3+iis,于是,于是,我问是不是需要他们操作一下啊,我都折腾半天了。rewrite我也写了好多。结果他们悠悠的来句~需要我们加载一下才能生效。我勒个去~iis服务器真坑爹啊,微软真坑爹啊。

备注:你编写的文件保存成htaccess,然后联系空间技术,让他加载下htaccess。不然你忙乎了半天,他不加载。。你的网站还是不能支持rewrite的。对了,还有可能是httpd.ini~具体内容参考网络吧。我很讨厌IIS,可是遇到问题不能逃避~

附:为何都不用lnmp或者最起码用lamp吧?不会linux,那用wamp?为何用iis?????

 

安卓真机调试

1、  安卓驱动

网上说下载这个,下载那个的!我就使用腾讯的手机管家(这里不算广告吧?)

然后手机驱动问题就解决了!

2、  打开eclipse-DDMS界面

 

DDMS真机调试截图

DDMS真机调试截图

3、  调试步骤

在项目文件夹点击右键,Run as—Android application(如果这里启动了安卓模拟器,那就点击项目右键,把Run as —Run configurations中的Android application下面的当前应用删除,再执行Run as—android application)

4、  真机界面(腾讯手机管家截屏)

 

腾讯手机管家截图

腾讯手机管家截图

 

安卓开发之再用SharedPreference

1、先获取对象
MySharePreference = getPreferences(Context.MODE_PRIVATE);//这里的模式自己查找

2、如果需要获取保存的内容可以使用
getXXX方法
MySharePreference.getString(“username”, “”);//第二个参数是默认值

3、如果想更改保存的内容可以使用
MySharePreference.Editor edit = MySharePreference.edit();//开始修改
edit.putString(“username”, “new data”);
edit.commit();//提交更改,这一步不能缺少

4、附常用方法
getBoolean(String key, boolean val);
getFloat(String key, float val);//第二个参数都是默认值
还有getInt、getString等,而对应MySharePreference.Editor保存的有putBoolean
putFloat,putInt,putString等

安卓下使用xml定义渐变背景

1、在drawable中建立bg.xml文件
<?xml version=”1.0″ encoding=”utf-8″?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android” >
<gradient
android:startColor=”@color/white”
android:centerColor=”@color/gray”
android:endColor=”@color/black”
android:angle=”270″
<!–0是从左到右,90是从下到上,180从右到左,270从上到下–>
android:centerY=”0.3″
android:centerX=”0.3″
<!—->
/>
<corners android:radius=”0dip”/>
</shape>
2、这样在布局中就可以使用
<LinearLayout
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”@drawable/xml_bg_orange”
android:orientation=”horizontal” >
3、这样背景就会从上到下进行颜色渐变

安卓中使用圆角button

1、在drawable中建立btn_blue.xml
内容如下:
<?xml version=”1.0″ encoding=”utf-8″?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android”
android:shape=”rectangle”>
<solid android:color=”@color/green” />
<!– 设置按钮的四个角为弧形 –>
<!– android:radius 弧形的半径 –>
<corners android:radius=”5dip” />
</shape>

Continue reading

Sqlite创建表以及默认当前时间

1、创建数据库

CREATE TABLE Joyous_sqlite (
id INTEGER NOT NULL,
create_time TIMESTAMP NOT NULL DEFAULT current_timestamp,
poster VARCHAR(50) NOT NULL,
CONSTRAINT Joyous_sqlite_pk PRIMARY KEY (id)
);

插入语句

insert into Joyous_sqlite (id,poster) values (1, ‘Joyous’);

这样查询结果是
“1”,”2013-10-09 06:57:29″,”Joyous”(sqlite的优点可以自动存储时间)
查询结果时间操作可以参考sqlite的date函数以及strftime函数

eclipse点击查看android源代码

1、下载android-2.2-froyo-src.zip(网上很多)

2、依次打开properties、java build path、Libraries选项卡

3、打开android.2.3.3,展开android.jar,选择Source attachment,点击右边Edit

4、选择下载的包即可(不用解压)