作者fishryo (绿豆)
看板java
标题[问题] J2ME 传参数问题
时间Sun Aug 3 16:03:55 2008
功能是要把图片原本的档名上传到server端
server端是用php去接收
*client端
//用http去连线到php网页 用POST方式
conn=(HttpConnection)Connector.open("
http://xx.xx.xx.xx/post.php");
conn.setRequestMethod( HttpConnection.POST );
//FILE是目前选择的档案名称 ex:1.jpg
FILE=fileList.getString(fileList.getSelectedIndex());
FILE = FILE.trim(); //去除多余空白或是奇怪的东西
String message1 = ""; //宣告字串message1
//CrLf="\r\n"
message1= "-----------------------------4664151417711" + CrLf;
//FILE = "1.jpg"
message1 += "Content-Disposition: form-data; name=\"bytes\";
filename=\"" + FILE + "\"" + CrLf;
message1 += "Content-Type: image/jpeg" + CrLf; //
message1 += CrLf;
//设定传送的type为multipart/form-data
conn.setRequestProperty("Content-Type", "multipart/form-data;
boundary=---------------------------4664151417711");
os = conn.openOutputStream(); //打开输出流
os.write(message1.getBytes()); //把message1传到server
**server端php的写法
echo $_FILES['bytes']['name']; //印出原始档名
$target_path = "./photo/"; //图片放到photo资料夹的路径
$today = date("Ymd"); //设定年月日
$todaytime=date('His'); //设定时分秒
//把target_path是最後完整的图片路径 ex: ./photo/20080801_152321.JPG
$target_path= $target_path.$today."_".$todaytime.".JPG";
if(is_uploaded_file($_FILES['bytes']['tmp_name']))
{
echo "OK";
//图片上传成功 把图片复制到target_path路径
copy($_FILES['bytes']['tmp_name'], $target_path);
}
else
{ //如果档案传送失败
echo "Failed";
}
产生的问题:
1.用wtk模拟器跑 有印出原始档名 图片也有上传成功
2.用sony k800i测试 没有印出原始档名 但是有上传成功
3. message1 += "Content-Disposition: form-data; name=\"bytes\";
filename=\"" + FILE + "\"" + CrLf;
如果FILE换成指定的字串"1.jpg" 用手机测试server端就会印出原始档名
尝试好多次都找不到原因
想请大家帮忙看一下
感谢大家耐心看完问题 ^^
※ 编辑: fishryo 来自: 140.123.15.73 (08/03 16:12)