我正在使用此脚本(http://stuporglue.org/mailreader-php-parse-e-mail-and-save-attachments-php-version-2/)在我的服务器上保存电子邮件附件。您还可以在此处查看浏览器上的完整脚本:http://stuporglue.org/downloads/mailReader.txt
一切正常,但这里有两个问题。
1)我保存到目录中的图像的文件名不是图像:1360341823_test_jpg
How to convert the file name from 1360341823_test_jpg to 1360341823_test.jpg
in the script?
2)保存在目录中的文件的权限为600.
How to make it default 755 or 775?
我相信这是在脚本中转换图像的功能。:
function saveFile($filename,$contents,$mimeType){
global $save_directory,$saved_files,$debug;
$filename = preg_replace('/[^a-zA-Z0-9_-]/','_',$filename);
$unlocked_and_unique = FALSE;
while(!$unlocked_and_unique){
// Find unique
$name = time()."_".$filename;
while(file_exists($save_directory.$name)) {
$name = time()."_".$filename;
}
// Attempt to lock
$outfile = fopen($save_directory.$name,'w');
if(flock($outfile,LOCK_EX)){
$unlocked_and_unique = TRUE;
} else {
flock($outfile,LOCK_UN);
fclose($outfile);
}
}
fwrite($outfile,$contents);
fclose($outfile);
// This is for readability for the return e-mail and in the DB
$saved_files[$name] = Array(
'size' => formatBytes(filesize($save_directory.$name)),
'mime' => $mimeType
);
}
任何帮助?
答案 0 :(得分:1)
原始脚本使用数据存储在数据库中,但我认为您正在尝试将其保存在文件中。您正在创建没有扩展名的文件:
// Attempt to lock
$outfile = fopen($save_directory.$name,'w');
将行后面的.jpg添加为:
#outfile.=".jpg";
其他方式如果您不想更改脚本,则可以使用:
$contents = file_get_contents($save_directory.$name);
$outfile = fopen($save_directory.$new_name,'w');
write($outfile,$contents);
fclose($outfile);
这将解决您的第一个问题,第二个问题请使用提供的FTP或控制面板来访问文件以更改所有权。如果您不知道任何事情,那么您可以联系您的虚拟主机服务提供商以分享从755到775的所有权