copy():Filename不能为空错误(仅偶尔)

时间:2017-12-15 15:45:08

标签: php wordpress

我有一个奇怪的PHP问题。 我有一个WordPress的自定义前端帖子提交表单。它大部分时间,但有时它似乎随机无效。

我的PHP错误日志吐出以下内容:

PHP Warning:  copy(): Filename cannot be empty in /home/y567889/public_html/wp-content/themes/colormag/inc/front_deck.php on line 1071

PHP Warning:  file_get_contents(https://ygoprodeck.com/pics/Trinity World Chalice-deck-14461.png): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/y567889/public_html/wp-content/themes/colormag/inc/front_deck.php on line 1025

PHP Warning:  unlink(/home/y567889/public_html/pics/Trinity World Chalice-deck-14461.png): No such file or directory in /home/y567889/public_html/wp-content/themes/colormag/inc/front_deck.php on line 172

因此从理论上讲,用户可以提交10个帖子。有时,这些帖子中的2个会在php日志中出现上述错误而产生错误(缺少特色图像等)。

我尝试了什么:

copy()更改为move_uploaded_file(),没有任何乐趣。

更改了" pics"的权限文件夹到775。

特别是我的一个用户。他试图上传的每个帖子都会发生这种情况。生成一个新的WP帐户可以为他修复此问题(虽然它仍然会按照惯例偶尔失败)。

因为错误从第1017行开始,我将展示代码的含义:

function moveYdktoDeck($ydkId,$postid){
     $ydkUrl = wp_get_attachment_url( $ydkId );

    $newfile = $_SERVER['DOCUMENT_ROOT'].'/UploadedDecks/3/'.$postid.'.ydk';

    copy($ydkUrl, $newfile) 

}

1 个答案:

答案 0 :(得分:0)

功能wp_get_attachment_url可以返回false。在复制功能中使用它之前检查一下。