我正在尝试将图像从Android应用程序上传到laravel服务器。
我正在使用下面链接中的@waqas7 方法 https://github.com/waqas7/UploadImageOnServer
问题是,文件太大,需要很长时间。还有另一种上传文件的方法吗?就像将它的格式更改为编码和更小的格式 我主要是一名网络开发人员,所以如果你能详细回答那就太好了 谢谢
对于可能遇到此问题的任何人,我使用压缩方法来减小尺寸
private fun compressImage(sourceImageFile: File): File? {
val destinationFile = context?.getDestinationFileForImage()
try {
val timeToExecute =
destinationFile?.let { CompressImage.compressImage(sourceImageFile, it) }
} catch (e: Exception) {
}
return destinationFile
}
object CompressImage {
fun compressImage(sourceFile: File, destinationFile:File):Long{
return measureTimeMillis {
val currentBitmap = BitmapFactory.decodeFile(sourceFile.absolutePath)
currentBitmap.compress(
Bitmap.CompressFormat.JPEG,
CompressFileUtils.COMPRESS_QUALITY,
FileOutputStream(destinationFile)
)
}
}
}
你也失去了方向,所以你需要在压缩图像之前保存它
val attributes = arrayOf(
ExifInterface.TAG_DATETIME,
ExifInterface.TAG_DATETIME_DIGITIZED,
ExifInterface.TAG_EXPOSURE_TIME,
ExifInterface.TAG_FLASH,
ExifInterface.TAG_FOCAL_LENGTH,
ExifInterface.TAG_GPS_ALTITUDE,
ExifInterface.TAG_GPS_ALTITUDE_REF,
ExifInterface.TAG_GPS_DATESTAMP,
ExifInterface.TAG_GPS_LATITUDE,
ExifInterface.TAG_GPS_LATITUDE_REF,
ExifInterface.TAG_GPS_LONGITUDE,
ExifInterface.TAG_GPS_LONGITUDE_REF,
ExifInterface.TAG_GPS_PROCESSING_METHOD,
ExifInterface.TAG_GPS_TIMESTAMP,
ExifInterface.TAG_MAKE,
ExifInterface.TAG_MODEL,
ExifInterface.TAG_ORIENTATION,
ExifInterface.TAG_SUBSEC_TIME,
ExifInterface.TAG_WHITE_BALANCE
)
val oldExif = ExifInterface(file)
oldExif.getAttribute(attributes[16])
exifData1 = oldExif.getAttribute(attributes[16])