escape
ソースをざっと見てみると、使いたくないときに JavaScript 関数を使用していることがわかります。
ソース コードの 80 ~ 90 行目を見てから、次のドキュメントを参照してescape
ください。問題は明らかです。
http://www.w3schools.com/jsref/jsref_escape.asp
編集:1/2/13
私はこれをもう少し調べましたが、上記の私の答えは問題ではないと思います. ブレークポイントを使用して、アップロード関数に渡される引数が正しいことを確認できました (つまり、「+」文字を含むファイル名で試しました)。
u/p がないため、アップロード関数内でブレークポイントを使用してテストできませんでした。ただし、アップロード機能でエラーが見つかると思います。具体的には、ここで行っているように、クエリ文字列を手動で作成しようとするのをやめます。
var data = "";
//data.append("filename", document.getElementById("filename0").value);
data += "filename="+escape(document.getElementById("filename0").value);
//data.append("username", document.getElementById("username").value);
data += "&username="+escape(document.getElementById("username").value);
//data.append("password", document.getElementById("password").value);
data += "&password="+escape(document.getElementById("password").value);
//data.append("public", document.getElementById("public").value);
data += "&public="+escape(document.getElementById("public").value);
//data.append("filebytes", escape(e.target.result));
data += "&filebytes="+escape(e.target.result);
//stdlog("Got result! Res: '''"+e.target.result+"'''");
代わりに、次のように JSON を使用してデータを構築します。
var data = {};
data.filename = escape(document.getElementById("filename0").value);//fixed coding error
// and so on for the other properties
それを試して、問題が解決するかどうかをお知らせください。