mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-10 23:09:51 +08:00
init project
This commit is contained in:
109
public/editormd/examples/image-cross-domain-upload.html
Normal file
109
public/editormd/examples/image-cross-domain-upload.html
Normal file
@@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>图片跨域上传示例 - Editor.md examples</title>
|
||||
<link rel="stylesheet" href="css/style.css" />
|
||||
<link rel="stylesheet" href="../css/editormd.css" />
|
||||
<link rel="shortcut icon" href="https://pandao.github.io/editor.md/favicon.ico" type="image/x-icon" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="layout" style="height: 2000px;background: #f6f6f6;">
|
||||
<header>
|
||||
<h1>图片跨域上传示例</h1>
|
||||
<p>Image cross-domain upload example.</p>
|
||||
</header>
|
||||
<div id="test-editormd">
|
||||
<textarea style="display:none;">#### Settings
|
||||
|
||||
```javascript
|
||||
{
|
||||
imageUpload : true,
|
||||
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
|
||||
imageUploadURL : "http://xxxxxxx/editor.md/examples/php/cross-domain-upload.php?test=dfdf",
|
||||
crossDomainUpload : true,
|
||||
uploadCallbackURL : "http://xxxxxx/upload_callback.html?test=dfdf"
|
||||
}
|
||||
```
|
||||
|
||||
#### 跨域上传原理
|
||||
|
||||
利用 iframe 来实现,A 站 POST 到 B 站,B 站处理上传后再跳转回到 A 站的 callback 页面,callback 页面此时在 iframe 内(即同域下),再通过 window.parent 就可以操作父页面的任意元素了。
|
||||
|
||||
#### 跨域上传示例 PHP 版
|
||||
|
||||
当前域名:blog.xxx.com/post.php
|
||||
|
||||
```html
|
||||
<form method="post" target="upload-iframe" enctype="multipart/form-data" action="http://static.xxx.com/uploader.php?callback=http://blog.xxx.com/upload-callback.html">
|
||||
<input type="file" name="file" accept="image/*" />
|
||||
<input type="submit" id="submit" value="开始上传" />
|
||||
</form>
|
||||
<iframe name="upload-iframe" style="display:none;" frameborder="0"></iframe>
|
||||
```
|
||||
|
||||
图片服务器:static.xxx.com/uploader.php
|
||||
|
||||
```php
|
||||
<?php
|
||||
header("Access-Control-Allow-Origin: *"); // Setting allow domian name
|
||||
|
||||
$file = 'uploads/' . $_FILES['file']['name'];
|
||||
// 详细过程略
|
||||
move_uploaded_file($_FILES['file']['tmp_name'], $file);
|
||||
|
||||
$location = $_GET['callback'].'?success=1&message=xxxxxxx&url=http://static.xxx.com/2015/02/15'.$file.'&temp='.date('ymdhis');
|
||||
|
||||
header('location:' . $location);
|
||||
exit;
|
||||
?>
|
||||
```
|
||||
|
||||
当前域名:blog.xxx.com/upload-callback.html
|
||||
|
||||
```html
|
||||
<script type="text/javascript">
|
||||
var query = {};
|
||||
var urlParams = window.location.search.split('?')[1];
|
||||
urlParams = urlParams.split("&");
|
||||
|
||||
for (var i = 0; i< urlParams.length; i++) {
|
||||
var param = urlParams[i].split("=");
|
||||
query[param[0]] = param[1];
|
||||
}
|
||||
|
||||
var imageDialog = window.parent.document.getElementById(query['dialog_id']);
|
||||
//console.log(imageDialog, window.parent.document, window.parent, query);
|
||||
</script>
|
||||
```</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="../editormd.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
var testEditor = editormd("test-editormd", {
|
||||
width : "90%",
|
||||
height : 640,
|
||||
markdown : "",
|
||||
path : '../lib/',
|
||||
imageUpload : true,
|
||||
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
|
||||
imageUploadURL : "http://www.ipandao.com/editor.md/examples/php/cross-domain-upload.php?test=dfdf",
|
||||
crossDomainUpload : true,
|
||||
uploadCallbackURL : "http://localhost/editor.md/examples/php/upload_callback.html?test=dfdf"
|
||||
|
||||
/*
|
||||
跨域时,上传的图片服务器后台只需要返回一个跳转 URL 并跳转到原页面同域下的 callback 页面,结构如下:
|
||||
{
|
||||
success : 0 | 1, // 0 表示上传失败,1 表示上传成功
|
||||
message : "提示的信息,上传成功或上传失败及错误信息等。",
|
||||
dialog_id : $_GET['dialog_id'],
|
||||
url : "远程图片地址" // 上传成功时才返回
|
||||
}
|
||||
*/
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user