java端可以运用第三库 OkHttpClient
File file = new File(filePath);
RequestBody fileBody = RequestBody.create(MediaType.parse("image/jpeg"), file);
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("image/jpeg", file.getName(), fileBody)
.build();
Request request = new Request.Builder()
.url(uploadUrl)
.post(requestBody)
.build();
final okhttp3.OkHttpClient.Builder httpBuilder = new OkHttpClient.Builder();
OkHttpClient okHttpClient = httpBuilder
//设置超时
.connectTimeout(100, TimeUnit.SECONDS)
.writeTimeout(150, TimeUnit.SECONDS)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d("FileUploader", response.protocol() + " " +response.code() + " " + response.message());
Headers headers = response.headers();
for (int i = 0; i < headers.size(); i++) {
Log.d("FileUploader", headers.name(i) + ":" + headers.value(i));
}
Log.d("FileUploader", "onResponse: " + response.body().string());
String uploadfile = uploadUrl + fileName + ".jpg";
Log.i("FileUploader uploadfile", uploadfile+"");
if(response.code() == 200) {
// 上传成功相关处理
}
}
@Override
public void onFailure(Call arg0, IOException e) {
Log.d("FileUploader", "onFailure: " + e.getMessage());
}
});
ios图片上传参照以下网址:
https://blog.csdn.net/liudongxinios/article/details/52033356
Unity UnityWebRequest也可以实现图片上传
string[] path = new string[1];
path[0] = Application.persistentDataPath + "/" + fileName;
Debug.Log("uploadfile php path:" + path[0]);
UnityWebRequest[] files = new UnityWebRequest[path.Length];
WWWForm form = new WWWForm();
FileStream fs = new FileStream(path[0], FileMode.OpenOrCreate);
byte[] imgByte = new byte[fs.Length];
fs.Read(imgByte, 0, imgByte.Length);
Texture2D tex = new Texture2D( 800, 800, TextureFormat.RGB24, false );
try
{
tex.LoadImage(imgByte);
}
catch (Exception ex)
{
}
byte[] bytes = tex.EncodeToJPG();
GameObject.Destroy( tex );
for (int i = 0; i < files.Length; i++)
{
form.AddBinaryData("files[]", bytes, Path.GetFileName(path[i]));
}
UnityWebRequest req = UnityWebRequest.Post(_uploadUrl, form);
yield return req.SendWebRequest();
if (req.isHttpError || req.isNetworkError)
Debug.Log("uploadfile" + req.error);
else
{
Debug.Log("uploadfile Uploaded " + files.Length + " files Successfully");
}
服务端可以采用java,php等方式
附上代码:
<?php
$total = count($_FILES['files']['name']);
$uploadError = false;
for ( $i = 0; $i < $total; $i++)
{
$tmpFilePath = $_FILES['files']['tmp_name'][$i];
if ($tmpFilePath != "")
{
$newFilePath = "./".$_FILES['files']['name'][$i];
if (!move_uploaded_file($tmpFilePath, $newFilePath))
$uploadError = true;
}
}
if ($uploadError)
echo "Upload Error";
else
echo "Uploaded Successfully";
?>
网友评论