0

我正在使用此脚本(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
  );
}    

有什么帮助吗?

4

1 回答 1

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 的所有权

于 2013-02-08T18:45:06.770 回答