2011-08-25 53 views
2

我已經看到了一些用於上傳文件和圖像的PHP腳本,但沒有發現它們是我需要的。如何使文件或圖像附件像SO這樣的形式

基本上我有一個表格:http://jsfiddle.net/MwnSn/11/和底部的textarea部分,我想添加一個附加圖像/文件,這樣當用戶從他們的計算機中選擇一個文件或圖像時,它會在textarea中創建爲某種形式的URL那麼用戶可以提交表單,而查看器只需在地址欄中輸入網址以下載文件或查看圖像...我知道可以將此圖像或文件下載到我的虛擬主機中並讓用戶獲得網址直接下載或查看,但這可能是一個不可靠的煩人,因爲我需要創建一個cron作業,以清理每週的混亂......

任何想法,我可以做什麼?

+0

你爲什麼要允許用戶下載他們剛剛上傳的文件。我可以理解上傳/存儲供以後使用,但現在上傳並提供可能有點多餘。 –

+0

@Marc B:你的意思是像imageshack和相關? – Konerak

+0

這是因爲當我在我的公司製作票時,我喜歡通過屏幕截圖或文件ID ......我們不允許在此過程中使用第三方程序或網站。 – Bulvak

回答

2

Working Example

是,當用戶添加文件,使用http://api.imgur.com/examples

function upload(file) { 

    // file is from a <input> tag or from Drag'n Drop 
    // Is the file an image? 

    if (!file || !file.type.match(/image.*/)) return; 

    // It is! 
    // Let's build a FormData object 

    var fd = new FormData(); 
    fd.append("image", file); // Append the file 
    fd.append("key", "6528448c258cff474ca9701c5bab6927"); 
    // Get your own key: http://api.imgur.com/ 

    // Create the XHR (Cross-Domain XHR FTW!!!) 
    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "http://api.imgur.com/2/upload.json"); // Boooom! 
    xhr.onload = function() { 
    // Big win! 
    // The URL of the image is: 
    document.getElementById('TextAreaId').innerHTML = JSON.parse(xhr.responseText).upload.links.imgur_page; 
    } 
    // Ok, I don't handle the errors. An exercice for the reader. 
    // And now, we send the formdata 
    xhr.send(fd); 
} 
+0

我只能上傳圖片不是文件?如果我還想上傳文件? – Bulvak

相關問題