PDA

View Full Version : سوال: ارسال فایل به سرور بدون فرم و با ایجکس



ravand
شنبه 12 فروردین 1396, 11:17 صبح
سلام
من میخوام با جاوا اسکریپت فایلی رو به سرور ارسال کنم اونم به تکنولوژی ایجکس. نمیخوام از فرم هم استفاده کنم. از جی کوئری و کتابخانه های دگه هم نمیخوام استفاده کنم.

اینجا یه مثالی گذاشته:
http://stackoverflow.com/questions/19617996/file-upload-without-form


var xmlHttpRequest = new XMLHttpRequest();

var file = ...file handle...
var fileName = ...file name...
var target = ...target...
var mimeType = ...mime type...

xmlHttpRequest.open('POST', target, true);
xmlHttpRequest.setRequestHeader('Content-Type', mimeType);
xmlHttpRequest.setRequestHeader('Content-Disposition', 'attachment; filename="' + fileName + '"');
xmlHttpRequest.send(file);
ولی نگفته باید به جای ...file handle... چی قرار بدم؟

plague
شنبه 12 فروردین 1396, 18:03 عصر
چرا زا formData استفاده نمیکنی ؟


var myFormData = new FormData();
myFormData.append('pictureFile', pictureInput.files[0]);

xmlHttpRequest.send(FormData);

ravand
شنبه 12 فروردین 1396, 18:10 عصر
چرا زا formData استفاده نمیکنی ؟


var myFormData = new FormData();
myFormData.append('pictureFile', pictureInput.files[0]);

xmlHttpRequest.send(FormData);
نمیخوام ازش استفاده کنم چون توی qml ازش پشتیبانی نمیشه.
اگه راهی رو میشناسید که به new FormData() نیاز نداشت بگید. از کتابخانه های جاوا اسکریپت مثل جی کوئری هم نمیخوام استفاده کنم.

plague
یک شنبه 13 فروردین 1396, 19:03 عصر
خب من تا حالا انجام ندادم ولی تو مثال اولی که خودت زدی handle file یه چیزی شبیه به این میشه
document.getElementById('xxxx').files[0]

ravand
دوشنبه 14 فروردین 1396, 23:14 عصر
فکر میکنم یه چیزی کم داره:


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function tabe(){
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.addEventListener('load', function(){
alert(this.responseText);
});
var myFileList = document.getElementById('files').files;
var file = myFileList[0];
var filename = file.name;
var mimeType = file.type;
xmlHttpRequest.open('POST', "get.php", true);
xmlHttpRequest.setRequestHeader('Content-Type', mimeType);
xmlHttpRequest.setRequestHeader('Content-Disposition', 'attachment; filename="' + filename + '"');
xmlHttpRequest.send(file);
}
</script>
</head>
<body>
<form action="get.php" enctype="multipart/form-data" method="post">
<input id="files" name="filename" type="file">
<input type="button" value="آپلود فایل" onclick="tabe();">
</form>
</body>
</html>

چون مقدار خالی ارسال میکنه.