Добавить почтовый заголовок в функцию почты
$header = "From: noreply@example.com\r\n";
$header.= "MIME-Version: 1.0\r\n";
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$header.= "X-Priority: 1\r\n";
$status = mail($to, $subject, $message, $header);
if($status)
{
echo '<p>Your mail has been sent!</p>';
} else {
echo '<p>Something went wrong, Please try again!</p>';
}
Если вам абсолютно нужна локальная копия файла, вам нужно будет открыть InputStream
копию содержимого в локальный файл, в котором вы знаете путь, а затем перейти оттуда. Sidenote: Guava ByteStreams#copy
- это простой способ выполнить это.
Конечно, этот файл больше не поддерживается исходным источником Uri, поэтому я не думаю, что это то, что вы хотите. Вместо этого вы должны работать с API-интерфейсом Uri. Взгляните на Storage Access Framework
Изменить
Вот как вы можете получить InputStream
из вашего Uri
InputStream inputStream = getContentResolver().openInputStream(uri);
Как я могу получить путь к файлу из этого типа URI контента?
blockquote>У вас нет, так как нет никакого файла вообще за
Uri
, не говоря уже о том, к которому вы можете получить доступ. ЭтоUri
может указывать на:
- Локальный файл на внешнем хранилище
- Локальный файл на внутренней памяти для другого приложения
- Локальный файл на съемном носителе
- Локальный файл, который зашифрован и должен быть дешифрован на лету
- Поток байтов, хранящихся в столбце
BLOB
в базе данных- Часть содержимого, которое должно быть загружено другим приложением первым
- ... и т. д.
Все другие приложения, такие как Facebook, Google+ это делает
blockquote>Нет, это не так. Они используют
ContentResolver
и:
openInputStream()
для чтения в байтах, связанных с содержимымgetType()
, чтобы получить тип MIME, связанный с содержимымquery()
иOpenableColumns
, чтобы получить размер и отображаемое имя, связанные с контентом
InputStream
для установки содержимого S3Object
. Если это так, вам не нужен файл. Вам просто нужно InputStream
из openInputStream()
.
– CommonsWare
8 March 2016 в 20:01
InputStream
( github.com/aws/aws-sdk-android/blob/master/aws-android-sdk-s3/… ). Я обновил свой ответ, чтобы включить, как получитьInputStream
– Scott Tomaszewski 8 March 2016 в 20:06