使用者上傳圖片後,需即時將該圖片作為指定 <div>(如 id="title")的背景圖顯示,無需刷新頁面。
/uploads/abc.jpg)。FormData + fetch/axios 非同步上傳,拿到回傳 URL。style.backgroundImage。// 上傳成功後的回調
function onUploadSuccess(imageUrl) {
const titleDiv = document.getElementById('title');
titleDiv.style.backgroundImage = `url("${imageUrl}")`;
titleDiv.style.backgroundSize = 'cover';
titleDiv.style.backgroundPosition = 'center';
}
<div id="title" style="width:300px;height:150px;border:1px solid #ccc;">
標題區塊
</div>
<input type="file" id="imgInput" accept="image/*">
<button onclick="uploadImg()">上傳並設為背景</button>
<script>
function uploadImg() {
const file = document.getElementById('imgInput').files[0];
if (!file) return alert('請選擇圖片');
const formData = new FormData();
formData.append('file', file);
fetch('/api/upload', { method: 'POST', body: formData })
.then(r => r.json())
.then(data => onUploadSuccess(data.url))
.catch(err => console.error(err));
}
</script>
resource-handler),確保上傳目錄可直接 URL 訪問。