我們通過實現少量的Javascript其中每9分鐘發送一個Ajax請求發回一個新斑塊上傳網址並交換了形式的URL解決了這十分鐘的超時問題。
/ajax/blob
URL獲取成功的URL,然後調用create_upload_url()
並將其作爲ajax數據對象返回。
這裏的JavaScript中,我們寫道:
if ($('#blobUploadForm').length > 0) {
setTimeout(_getNewBlobstoreUrl, 9 * 1000 * 60 * 60); // 9 minutes
} //do nothing if there is no uploadUrl id
function _getNewBlobstoreUrl() {
var successUrl = $('#uploadUrl').attr('value');
if (typeof successUrl == 'undefined') {
return;
}
var url = "/ajax/blob?url=" + successUrl;
$.ajax({
url: url,
dataType: "json",
cache: false,
async: true,
success: _getNewBlobstoreUrlSuccess,
error: _getNewBlobstoreUrlError
})
function _getNewBlobstoreUrlSuccess(data) {
if (data.url) {
//change the action to a new action
$('#blobUploadForm').attr('action', data.url)
}
}
function _getNewBlobstoreUrlError(err) {
// do something
}
不要在最後忘了設置超時再次過,在情況下,用戶需要很長的時間來填寫(或使用setInterval的?)形成。
什麼樣的對象是'#uploadUrl'? –
#uploadUrl是包含要上傳到最終去到URL隱藏字段。 – edhgoose