我正在使用window.open(来自React的jsx文件)进行文件下载:
function downloadFile(documentName, event) {
var response = window.open('/downloadViewDocument/'+ documentName, "_self");
}
从node / express我返回的文件如下:
var document = __dirname + "/../../attachments/" + req.params.documentName.trim();
fs.stat(document, function(err, stat) {
if(err == null) {
console.log('File exists');
res.setHeader("Content-Disposition","attachment; filename=\"" + req.params.documentName.trim() + "\"");
var filestream = fs.createReadStream(document);
filestream.pipe(res);
} else if(err.code == 'ENOENT') {
// file does not exist
**res.json({success: true, msg: 'File Does Not Exist!'});**
} else {
**res.json({success: true, msg: 'Error Occured, Please Try Again!'});**
}
});
请注意,在上面的代码中出现错误,我将返回JSON对象。
如果找到文件,则会下载。
但是如果找不到文件我想从msg中读取并想向用户显示正确的错误消息。
我看不到window.open的任何选项来读取回复。还有其他办法吗?
答案 0 :(得分:-1)
最简单的方法是使用$inbox = imap_open($hostname,$username,$password) or die('Cannot connect: ' . imap_last_error());
$emails = imap_search($inbox,'SINCE "'.date("d-M-y",strtotime("-3 days")).'"',SE_UID);
if($emails) {
rsort($emails);
foreach($emails as $email_number) {
echo "<h1>".$email_number."</h1>";
$overview = imap_fetch_overview($inbox,$email_number, FT_UID);
if($overview[0]->seen)
imap_clearflag_full($inbox,$email_number,"//Seen");
else
imap_clearflag_full($inbox,$email_number,"//Unseen");
$structure = imap_fetchstructure($inbox,$email_number, FT_UID);
if(isset($structure->parts)){
$flattenedParts = flattenParts($structure->parts);
echo "<pre>";
print_r($flattenedParts);
echo "</pre>";
echo "</br>";
getmsg($inbox, $email_number);
echo "<p>".htmlspecialchars_decode(utf8_decode($plainmsg))."</p>";
}else{
$string_email = utf8_decode(imap_body($inbox, $email_number, FT_UID));
$string_email= strip_tags($string_email);
$string_email = html_entity_decode($string_email,ENT_QUOTES);
echo "<p>".$string_email."</p>";
}
}
}
imap_close($inbox);
打印错误消息。
还有很多其他解决方案,但如果我正确理解您的问题,您只需要以简单的方式将错误消息打印到客户端。