diff --git a/webrepl.html b/webrepl.html index 297d97e..3fa8e1e 100644 --- a/webrepl.html +++ b/webrepl.html @@ -58,6 +58,8 @@ <div class="file-box"> <strong>Send a file</strong> <input type="file" id="put-file-select" /> + <strong>Destination path</strong> + <input type="text" name="set_filepath" id="put_filepath" value="." size="13" /> <div id="put-file-list"></div> <input type="button" value="Send to device" id="put-file-button" onclick="put_file(); return false;" /> </div> @@ -85,6 +87,7 @@ var connected = false; var binary_state = 0; var put_file_name = null; +var put_file_path = null; var put_file_data = null; var get_file_name = null; var get_file_data = null; @@ -273,7 +276,9 @@ function put_file() { var dest_fname = put_file_name; + var dest_fpath = document.getElementById('put_filepath').value; var dest_fsize = put_file_data.length; + var dest_full_fname = dest_fpath + '/' + dest_fname; // WEBREPL_FILE = "<2sBBQLH64s" var rec = new Uint8Array(2 + 1 + 1 + 8 + 4 + 2 + 64); @@ -281,12 +286,17 @@ rec[1] = 'A'.charCodeAt(0); rec[2] = 1; // put rec[3] = 0; - rec[4] = 0; rec[5] = 0; rec[6] = 0; rec[7] = 0; rec[8] = 0; rec[9] = 0; rec[10] = 0; rec[11] = 0; - rec[12] = dest_fsize & 0xff; rec[13] = (dest_fsize >> 8) & 0xff; rec[14] = (dest_fsize >> 16) & 0xff; rec[15] = (dest_fsize >> 24) & 0xff; - rec[16] = dest_fname.length & 0xff; rec[17] = (dest_fname.length >> 8) & 0xff; + rec[4] = 0; rec[5] = 0; rec[6] = 0; rec[7] = 0; rec[8] = 0; rec[9] = 0; + rec[10] = 0; rec[11] = 0; + rec[12] = dest_fsize & 0xff; + rec[13] = (dest_fsize >> 8) & 0xff; + rec[14] = (dest_fsize >> 16) & 0xff; + rec[15] = (dest_fsize >> 24) & 0xff; + rec[16] = dest_full_fname.length & 0xff; + rec[17] = (dest_full_fname.length >> 8) & 0xff; for (var i = 0; i < 64; ++i) { - if (i < dest_fname.length) { - rec[18 + i] = dest_fname.charCodeAt(i); + if (i < dest_full_fname.length) { + rec[18 + i] = dest_full_fname.charCodeAt(i); } else { rec[18 + i] = 0; }