0

简单的问题,但可能很复杂的答案。我正在使用 BluImp JQuery 文件上传器。我已经自定义了模板,这样一个名字很长的文件就不会弄乱我网页的外观。这是我用来执行此操作的代码示例。

    <!-- The template to display files available for upload -->
<script id="template-upload" type="text/x-tmpl">
  {% for (var i=0, file; file=o.files[i]; i++) { %}
    {% if (file.name.length > 16) file.name = file.name.substring(0, 16) + "..."; %}
      <tr class="template-upload fade">
          <td class="name"><span>{%=file.name%}</span></td>
          {% if (file.error) { %}
              <td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td>
          {% } else if (o.files.valid && !i) { %}
              <td>
                  <div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="bar" style="width:0%;"></div></div>
              </td>
              <td>{% if (!o.options.autoUpload) { %}
                  <button class="btn btn-primary start">
                      <i class="icon-upload icon-black"></i>
                      <span>Start</span>
                  </button>
              {% } %}</td>
          {% } else { %}
              <td colspan="2"></td>
          {% } %}
          <td>{% if (!i) { %}
              <button class="btn btn-warning cancel">
                  <i class="icon-ban-circle icon-black"></i>
                  <span>Cancel</span>
              </button>
          {% } %}</td>
      </tr>
  {% } %}
</script>
<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
  {% for (var i=0, file; file=o.files[i]; i++) { %}
    {% if (file.name.length > 16) file.name = file.name.substring(0, 16) + "..."; %}
      <tr class="template-download fade">
          {% if (file.error) { %}
              <td></td>
              <td class="name"><span>{%=file.name%}</span></td>
              <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
              <td class="error" colspan="2"><span class="label label-important">Error</span>{%=file.error%}</td>
          {% } else { %}
              <td class="name">
                {%=file.name%}
              </td>
              <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
              <td colspan="1"></td>
          {% } %}
          <td width="130px;">
              <button class="btn btn-danger delete" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}"{% if (file.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
                  <i class="icon-trash icon-black"></i>
                  <span>Delete</span>
              </button>
              <input type="checkbox" name="delete" value="1" class="toggle">
          </td>
      </tr>
  {% } %}
</script>

file.name 格式在 IE 中始终有效。在所有其他浏览器中,只有下载模板有效。IE 文件名仅在文件上传后修剪。那么,如何在其他浏览器中上传之前修剪文件名?

4

1 回答 1

0

使用正则表达式手动修剪它,例如以下到 Windows 路径:

.replace(/[^\\]+\\/g,"");
于 2013-11-01T22:57:01.370 回答